служба геокодера гугл - PullRequest
0 голосов
/ 21 июня 2011

Я пытаюсь использовать сервис геокодера Google, чтобы получить координаты городов, введенные пользователем.Однако, похоже, что есть некоторая проблема с инициализацией объекта LatLng () (latlngCity), и карта не будет отображаться.Код выглядит следующим образом:

var map;
var latlngCity;

function initialize() {
  var geocoder = new google.maps.Geocoder();
  geocoder.geocode({'address': 'Lisbon, PT'}, function(results, status) {
      if(status == google.maps.GeocoderStatus.OK) {
        latlngCity = results[0].geometry.location;
      }
  });


  var myMapOptions = {
      zoom: 8,
      center: latlngCity,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  map = new google.maps.Map(document.getElementById("map_canvas"),
      myMapOptions);
}

Для простоты я сам вставляю строку адреса города.Переменные map и latlngCity являются глобальными.Что-то не так с этим кодом?Большое спасибо.

1 Ответ

0 голосов
/ 21 июня 2011

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

В вашем коде latlngCity не определено временем создания карты, в то время как geocode все еще выполняется (асинхронно).

Надеюсь, это имеет смысл.В противном случае я предоставлю некоторый код.Дайте мне знать.

...