2013-03-13 14 views
6

Google Maps APIを使用しているうちに、結果が時々変化することがわかりました。変更によって、私は応答オブジェクトを意味します。基本的に私は、ユーザー入力に基づいて場所のリストを取得するために(また、jQueryUI自動完了を使用して)Googleマップを照会しています。 Google Maps APIから返される座標を正確に取得しようとしていますが、正確な近似座標を含むプロパティは時々変化するようです。Google Maps APIを正しく使用するにはどうすればよいですか?

たとえば、私は前の日にitem.geocode.geometry.location.Yaitem.geocode.geometry.location.Zaのような座標を得ることができました。 Googleがitem.geometry.location.mbitem.geometry.location.nbに変更したため、検索フォームが壊れました。

これを正しく、安定した方法で実装する方法についてのご意見はありますか?

答えて

14

見つけたもののようなMaps APIオブジェクトの文書化されていないプロパティを使用しないでください。これらはMaps APIが改訂されるたびに大きく変化します。

代わりに、文書化されたメソッドとプロパティのみを使用してください。

あなたitem.geocode.geometry.locationLatLngあるので、あなたはその.lat().lng()メソッドを呼び出すことができます。

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

おかげでたくさん!あなたは正しいです、+1して受け入れます。 – Ben

+0

APIのV3では、私は以下を使用しました: 'var lat = location.nb; var lng = location.ob; ' – Imperative

+4

@Imperative - いいえ、まさにあなたが*しない*べきことです。あなたは、デバッガで見つけた文書化されていないプロパティを使用しています。今週はうまくいくかもしれませんが、GoogleがMaps APIコードを再コンパイルするたびに無作為に変更されます。代わりに、文書化された 'lat()'と 'lng()'メソッドを使用してください。 –

関連する問題