2013-03-13 26 views
6

Dowiedziałem się, że podczas używania Google Maps API wyniki zmieniają się od czasu do czasu. Przez zmianę rozumiem obiekt odpowiedzi. Zasadniczo wysyłam zapytanie do Google Maps, aby uzyskać listę miejsc na podstawie danych wprowadzonych przez użytkownika (również za pomocą jQueryUI auto complete). Próbuję poprawnie pobrać współrzędne, które są zwracane z interfejsu Google Maps API, ale właściwości zawierające dokładne przybliżone współrzędne wydają się od czasu do czasu zmieniać.Jak właściwie korzystać z Google Maps API?

Na przykład: we wcześniejszych dniach udało mi się uzyskać współrzędne takie jak item.geocode.geometry.location.Ya i item.geocode.geometry.location.Za. Wtedy moja forma wyszukiwania zepsuła się, ponieważ Google zmieniło ją na item.geometry.location.mb i item.geometry.location.nb.

Wszelkie sugestie, jak wdrożyć to w prawidłowy i stabilny sposób?

Odpowiedz

14

Nigdy nie używaj nieudokumentowanych właściwości obiektu interfejsu API Map Google, takich jak te, które znalazłeś. Te zmiany będą szalenie zmieniać za każdym razem, gdy poprawi się interfejs API Map Google.

Zamiast tego należy używać tylko udokumentowanych metod i właściwości.

Twój item.geocode.geometry.location jest LatLng, więc można zadzwonić do jego .lat() i .lng() metod:

var location = item.geocode.geometry.location; 
var lat = location.lat(); 
var lng = location.lng(); 
+0

Thanks a bunch! Masz rację, +1 i jesteś akceptowany. – Ben

+0

W wersji V3 interfejsu API użyłem: 'var lat = location.nb; var lng = location.ob; ' – Imperative

+4

@Imperatywny - Nie, dokładnie to powinieneś * nie * robić. Używasz nieudokumentowanych właściwości znalezionych w debugerze. Mogą działać w tym tygodniu, ale będą się zmieniać losowo, gdy Google przekompiluje kod interfejsu API Map Google. Zamiast tego użyj udokumentowanych metod 'lat()' i 'lng()'. –