高德地图web JS API中逆向地理编码的疑问

这是高德地图逆向地理编码的例子(JS),想尝试单独放在一个function中并返回地址,但是如果这样写的话,断点看到已经调用API成功,address有地址值,return的时候却是undefined,同时附上我写的funtion代码。小女子默默等候大牛指点一番,感激不尽。

AMap.plugin('AMap.Geocoder', function() {
  var geocoder = new AMap.Geocoder({
    // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
    city: '010'
  })
 
  var lnglat = [116.396574, 39.992706]

  geocoder.getAddress(lnglat, function(status, result) {
    if (status === 'complete' && result.info === 'OK') {
        // result为对应的地理位置详细信息
    }
  })
})

自己写的function

function test(lnglat) {
    var address;
    //加载地理编码插件 
    var geocoder = new AMap.Geocoder({
        radius: 1000,
        extensions: "all",
        city:'北京市'
    });
    //逆地理编码 
      geocoder.getAddress(lnglat,function(status,result){
      if (status === 'complete' && result.info === 'OK') {
          address = result.regeocode.formattedAddress; //返回地址描述
          return address;
            }else{
                return '';
            }
      });
}
阅读 5.3k
2 个回答

因为geocoder.getAddress()是异步的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题