web-dev-qa-db-fra.com

google.maps.Geocoder.geocode () geometry.location lat / lng les noms de propriété changent fréquemment

J'ai une application et j'utilise l'API Google Javascript Geocoding pour récupérer lat/lng pour une adresse.

Le code va quelque chose comme

geocoder = new google.maps.Geocoder()
geocoder.geocode({ 'address': query }, function(results, status) {
    addresses = {};
    $.each(results, function(index, value){
        addresses[index] = {"lat":value.geometry.location.$a,"lng":value.geometry.location.ab}
    })
});

Tout va bien et dandy, mais le fait est que les noms de propriété de l'objet emplacement changent périodiquement. Chaque fois qu'ils changent, mon site tombe en panne.

Deux fois, j'ai dû changer mon code pour tenir compte des changements de nom de propriété lat/lng étranges dans l'API de géolocalisation de Google. À l'origine c'était Xa, Ya, puis j'ai dû changer pour Ya, Za, et maintenant c'est $ a, ab. Je ne vois aucune logique conviviale derrière ces changements.

Quelqu'un sait-il pourquoi ces noms de propriété changent et/ou quelle stratégie puis-je utiliser pour obtenir le lat/lng tout en évitant les problèmes causés par ces changements de nom de propriété?

47
tomwoods

Utilisez les documentés propriétés , ils ne changeront pas

geometry.location est un objet google.maps.LatLng , les méthodes documentées sont:

lat()   number  Returns the latitude in degrees.
lng()   number  Returns the longitude in degrees.
93
geocodezip