Центрировать страну по имени в Google Maps API v3 - PullRequest
21 голосов
/ 10 декабря 2010

Кто-нибудь подскажет, как центрировать страну по имени в Google Maps API v3?Я знаю, как сделать это в v2, но нужно сделать это в v3.

Ответы [ 3 ]

47 голосов
/ 10 декабря 2010

Вы можете использовать геокодирование, чтобы найти широту / долготу страны.Взгляните на этот образец от Google.

В основном вам нужно сделать что-то вроде этого:

var country = "Germany";
var geocoder;

geocoder.geocode( {'address' : country}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
    }
});

В вашей функции инициализации вам нужно установитьзначение объекта геокодера, например:

geocoder = new google.maps.Geocoder();

. Вам нужно было бы определить, какой будет подходящий уровень масштабирования, а затем установить его после центрирования карты.

1 голос
/ 24 мая 2017

Этот код работает для меня:

      let geocoder = new google.maps.Geocoder();
      let 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);
          }
      });
0 голосов
/ 10 декабря 2010

Единственный способ, которым я знаю, как это сделать, - это иметь список стран и их соответствующих лат и лнг, с известной информацией, что вы можете использовать следующий код.

var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
  zoom: 8,
  center: myLatlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
};

var map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);

Из любопытства, как бы вы сделали это в v2?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...