谷歌地图地理编码

时间:2012-07-20 07:25:59

标签: geocoding

嗨,我遇到与Return address from Google Maps Geocoder v3相同的问题,我不明白如何将我的全局变量设置为返回值

我在b返回undefined

的那一刻得到了这个
 var a;
 var b;
function outputGeo(result){
    b = result; 
     }


 geocoder.geocode({'latLng': event.latLng},function(results, status) {

         a =  results[1].formatted_address;
         outputGeo(a);
        });  
alert(b);

1 个答案:

答案 0 :(得分:0)

geocoder.geocode是一个异步函数,因为它正在执行JSONP请求。换句话说,在结果返回之前,alert(b)行已被调用。您需要在alert之后将outputGeo(a)行放入回调函数。

Javascript是一种有趣的语言。在我研究JSONP和Javascript的同步之前,这个异步的东西让我感到困惑。我建议你这样做。了解这一点的一个好方法是编写自己的JSONP请求包装器。 (只是一个想法。)