Используя AngularJS и API Карт Google, я получаю координаты с адреса, используя этот код:
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': address}, function (results, status) {
if (status === google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.A || results[0].geometry.location.G || results[0].geometry.location.H;
var lng = results[0].geometry.location.F || results[0].geometry.location.K || results[0].geometry.location.L;
//Something to do
});
Когда я начал проект, я пишу только это:
var lat = results[0].geometry.location.A
var lng = results[0].geometry.location.F;
С течением времени API Карт Google изменил имя переменных на location.G и location.K и мне нужно было переделать код для этого:
var lat = results[0].geometry.location.A || results[0].geometry.location.G;
var lng = results[0].geometry.location.F || results[0].geometry.location.K;
Теперь API Карт Google снова изменил имя переменных на location.H и location.L...
Новый код:
var lat = results[0].geometry.location.A || results[0].geometry.location.G || results[0].geometry.location.H;
var lng = results[0].geometry.location.F || results[0].geometry.location.K || results[0].geometry.location.L;
Я не хочу редактировать мой код, я хочу, чтобы мой код был стабильным... Есть ли способ получить координаты более стабильными?
Благодарю!
Это похоже на повторение этого вопроса:
google.maps.Geocoder.geocode() Часто задаваемые имена геометрии.location lat/lng изменяются
Ответ:
"Использовать документированные свойства, они не изменятся.
geometry.location
- это объектgoogle.maps.LatLng
, документированные методы:lat()
number Возвращает широту в градусах.lng()
number Возвращает долготу в градусах".