47 votes

Google.maps.Geocoder.geocode() Les noms des propriétés geometry.location lat/lng changent fréquemment

J'ai une application, et j'utilise l'API de géocodage Javascript de Google pour obtenir les latitudes et longitudes d'une adresse.

Le code ressemble à quelque chose comme ça

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, mais le problème est que les noms de propriétés de l'objet location changent périodiquement. Chaque fois qu'ils changent, mon site se casse.

Deux fois, j'ai dû changer mon code pour accommoder les étranges changements de noms de propriétés lat/lng 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.

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

93voto

geocodezip Points 41746

Utilisez les propriétés documentées, elles ne changeront pas

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

lat()   number  Renvoie la latitude en degrés.
lng()   number  Renvoie la longitude en degrés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X