Я использую API геокодирования для преобразования и адресатов в значения координат широты и долготы. Я получаю результаты, но lat и длинные пустые. В других сообщениях SO упоминаются запросы геокодера асинхронны, и Google просто не возвращает данные достаточно быстро. Я не понимаю, как это исправить для моего кода, если это проблема.Геокодирование Google Maps APi не возвращает lat и long
var coords = [];
var address = '1600 Pennsylvania Ave NW, Washington, DC 20500';
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': address}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
coords[0] = results[0].geometry.location.lat();
coords[1] = results[0].geometry.location.lng();
}
else {
coords = 'Could not retrieve coordinates for: ' + address;
}
});
return coords;
Даже если я пользуюсь известным адресом, я до сих пор не получаю лат или долго.
Результаты объекта:
Является ли это действительно проблема или есть что-то не так с кодом я использую? Как я могу это исправить?
Вы не можете вернуть что-либо из асинхронной функции обратного вызова, вам нужно использовать данные там, где/там, где они существуют – geocodezip
Тогда в чем смысл этой документации: https://developers.google.com/maps/documentation/ javascript/geocoding В нем упоминается все, что возвращается, включая геометрию: {location: LatLng} ... это то, что мне нужно. – JsusSalv
Почему downvote? Это законный вопрос. Если вы не понимаете проблему или документацию, задайте вопрос. Это общедоступный API, и у других были проблемы с ним, которые не были исправлены должным образом. – JsusSalv