3

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

var mapOptions = {
    center: "Paris"
};
trs
  • 863
  • 2
  • 16
  • 35

1 Answers1

11

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'; 
MrUpsidown
  • 21,592
  • 15
  • 77
  • 131