Search code examples
javascriptgoogle-mapsgoogle-maps-api-3geolocation

Center Google Maps to location string


Using Google Maps API, I would like to center the map to a string instead of Lat/Lng

var mapOptions = {
    center: "Paris"
};

Solution

  • You can use the geocoder.

    Working code snippet:

    var geocoder;
    var map;
    
    function initialize() {
    
      geocoder = new google.maps.Geocoder();
    
      var latlng = new google.maps.LatLng(0, 0);
      var mapOptions = {
        zoom: 8,
        center: latlng
      };
    
      map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
    
      // Call the codeAddress function (once) when the map is idle (ready)
      google.maps.event.addListenerOnce(map, 'idle', codeAddress);
    }
    
    function codeAddress() {
    
      // Define address to center map to
      var address = 'Paris, France';
    
      geocoder.geocode({
        'address': address
      }, function(results, status) {
    
        if (status == google.maps.GeocoderStatus.OK) {
    
          // Center map on location
          map.setCenter(results[0].geometry.location);
    
          // Add marker on location
          var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
          });
    
        } else {
    
          alert("Geocode was not successful for the following reason: " + status);
        }
      });
    }
    
    initialize();
    #map-canvas {
      height: 180px;
    }
    <div id="map-canvas"></div>
    <script src="//maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>

    JSFiddle demo

    Edit: of course you can geocode a complete address like this:

    // Define address to center map to
    var address = 'Rue Casse-Cul, Montboucher-sur-Jabron, France';