2013-03-13 43 views
6

Google Maps API'yı kullanırken, sonuçların zaman zaman değiştiğini öğrendim. Değişim ile yanıt nesnesini kastediyorum. Temel olarak, kullanıcı girdisine dayalı yerlerin listesini almak için Google Haritalar'ı sorgularım (ayrıca jQueryUI otomatik tamamlama özelliğini kullanarak). Google Haritalar API'sından döndürülen koordinatları doğru şekilde almaya çalışıyorum ancak tam yaklaşık yaklaşık koordinatları içeren özellikler zaman zaman değişiyor gibi görünüyor.Google Maps API nasıl düzgün kullanılır?

Örneğin: daha önceki günlerde ben item.geocode.geometry.location.Ya ve item.geocode.geometry.location.Za gibi koordinatları almak başardı. Sonra arama formum kırıldı çünkü Google bunu item.geometry.location.mb ve item.geometry.location.nb olarak değiştirdi.

Bunu doğru ve tutarlı bir şekilde nasıl uygulayacağınız konusunda herhangi bir öneriniz var mı?

cevap

14

Hiçbir zaman bulduklarınız gibi bir Google Haritalar API'sinin belgelenmemiş özelliklerini kullanmayın. Haritalar API'sı revize edildiğinde bunlar çılgınca değişecek.

Bunun yerine, yalnızca belgelenmiş yöntemleri ve özellikleri kullanın.

Sizin item.geocode.geometry.location bir LatLng, yani onun .lat() ve .lng() yöntemlerini çağırabilir:

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

Çok teşekkürler! Haklısın, +1 ve kabul ettin. – Ben

+0

API'nin V3'te kullanıyorum: 'var lat = location.nb; var lng = location.ob; – Imperative

+4

@Imperative - Hayır, tam olarak ne yapmalısınız * yapmayın *. Hata ayıklayıcıda bulduğunuz belgelenmemiş özellikleri kullanıyorsunuz. Bu hafta çalışabilirler, ancak Google Haritalar API kodunu yeniden derlediğinde rastgele değişeceklerdir. Bunun yerine belgeli 'lat()' ve 'lng()' yöntemlerini kullanın. –