Gmaps回调函数获取变量

时间:2015-10-05 13:10:06

标签: javascript jquery google-maps

我有JS代码正在进行地理定位,所以我将地址转换为坐标,但我无法从回调函数中获取值:

    $(function () {
    var longitude;
    var latitude;

    GMaps.geocode({
        address: geolocate_address,
        callback: function(results, status) {
            if (status == 'OK') {
                var latlng = results[0].geometry.location;
                latitude = latlng.lat();
                longitude = latlng.lng();
            }
        }
    });

    console.log(latitude);
    console.log(longitude);
    });

显示空变量。

当我在回调函数中发出警报时,它会显示坐标。

如何在该函数之外获取坐标?

1 个答案:

答案 0 :(得分:0)

您的回调是异步的,在您调用console.log(latitude);时,latitude仍然没有设置值,因为客户端仍在等待服务器响应。

尝试处理之后>的数据:

GMaps.geocode({
        address: geolocate_address,
        callback: function(results, status) {
            if (status == 'OK') {
                var latlng = results[0].geometry.location;
                latitude = latlng.lat();
                longitude = latlng.lng();
                handleCallback(latitude, longitude);
            }
        }
    });

function handleCallback(latitude, longitude){
    console.log(latitude);
    console.log(longitude);
}