2012-05-02 14 views
-2
geocoder.geocode({ 'address': full_address}, function(results, status) { 
    lat = results[0].geometry.location.lat(); 
    lng = results[0].geometry.location.lng(); 
    alert(lat); // works perfectly 
}); 
alert(lat); // doesn't return anything 

どのようにしてオブジェクトの外側の最後の警告が返されないのですか?誰でもこれを修正する方法を知っていますか?Google Maps Geocoderから返された値にアクセスする方法

+1

あなたが画面に表示されているものを識別する追加のテキストを 'alert'呼び出しに追加したい場合があります。 'geocode'呼び出しは非同期ですので、' alert 'への2回目の呼び出しが実際に最初に実行され、その後にコールバック関数内で 'alert'呼び出しが実行されると思います。 2つの警告ダイアログが表示されますか? –

+0

はい、最初の文字は空白です。そして、第二のものが本当に最初に走ります。 –

答えて

1

これは可変範囲の問題でしょうか?変数がオブジェクト/関数に対してローカルである場合、変数はそのブロックの外側で定義されていない可能性があります。

var lat; 
var lng; 

geocoder.geocode({ 'address': full_address}, function(results, status) { 
lat = results[0].geometry.location.lat(); 
lng = results[0].geometry.location.lng(); 
alert(lat); // works perfectly 
}); 
alert(lat); // doesn't return anything 
+0

私が言ったことを忘れて、それは動作しません、それはちょうどそれを無視しました。 –

関連する問題