这是高德地图逆向地理编码的例子(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 '';
}
});
}
因为
geocoder.getAddress()
是异步的。