GeoCode Google преобразовывают город, СОСТОЯНИЕ в долготу широты

Следующий код работает асинхронно. У меня только есть настроенный для преобразования Города, состояния в широту и долготу. То значение затем предупреждено.

Как я могу записать функцию, которая на самом деле возвращает эти значения?

var map;
var geocoder;

function initialize() {

  geocoder = new GClientGeocoder();

}

// addAddressToMap() is called when the geocoder returns an
// answer.  It adds a marker to the map with an open info window
// showing the nicely formatted version of the address and the country code.
function addAddressToMap(response) {
  //map.clearOverlays();
  if (!response || response.Status.code != 200) {
    alert("Sorry, we were unable to geocode that address");
  } else {
    place = response.Placemark[0];

    latitude = place.Point.coordinates[0];
    longitude = place.Point.coordinates[1];

    alert("Latitude " + latitude + " Longitude" + longitude);

  }
}

function showLocation(address) {
  geocoder.getLocations(address, addAddressToMap);
}
1
задан pws5068 14 July 2010 в 13:26
поделиться

2 ответа

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

1
ответ дан 2 September 2019 в 23:03
поделиться

Нет, насколько мне известно, API Google Maps не поддерживает синхронные запросы геокодирования. Однако как правило, вы не должны использовать синхронные запросы. Это связано с тем, что пользовательский интерфейс браузера будет блокироваться до тех пор, пока он не получит ответ, и это сделает ужасный пользовательский опыт.

1
ответ дан 2 September 2019 в 23:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: