Как центрировать карту Google в стране по названию - PullRequest
13 голосов
/ 16 ноября 2009

Я использую Google Maps API (v2) и хочу центрировать загрузку карты в стране (например, в Англии).

На данный момент я центрирую карту, используя:

map.setCenter(new GLatLng( 43.907787,-79.359741), 9);

Но это, очевидно, требует долготы и широты.

Есть ли способ сделать это, вставив название страны?

Ответы [ 3 ]

16 голосов
/ 16 ноября 2009
var country = "United States"
var map = new GMap2($("#map")[0]);
map.setUIToDefault();

var geocoder = new GClientGeocoder();
geocoder.getLatLng(country, function (point) {
  if (!point) {
    // Handle error
  } else {
    map.setCenter(point, 8, G_PHYSICAL_MAP);
  }
});
10 голосов
/ 31 августа 2012

Сначала необходимо геокодировать адрес:

var geocoder = new google.maps.Geocoder();
var location = "England";
geocoder.geocode( { 'address': location }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
    } else {
        alert("Could not find location: " + location);
    }
});
5 голосов
/ 16 ноября 2009

Превращение названия местоположения или адреса в широту / долготу, как это, называется геокодированием. API Карт Google теперь включает эту возможность: см. http://code.google.com/apis/maps/documentation/services.html#Geocoding

Они включают в себя пример приложения, в котором вы можете ввести адрес, и оно работает просто для ввода названия страны. Я не знаю, собираются ли они в точный центр страны.

...