2015-10-05 38 views
-1

我这是做地理位置JS代码,所以我转换地址,坐标,但我不能从回调函数获取值:Gmaps回调函数来获取变量

$(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); 
    }); 

显示空变量。

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

如何获得该功能以外的坐标?

回答

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); 
} 
+0

我试过了,但我又需要handleCallback功能之外的数据。你有解决方案吗? – user3297094