【发布时间】:2015-12-28 21:31:51
【问题描述】:
我正在尝试通过一个函数来获取地址,我只需要提供 latLong 但我遇到了一个真正的问题来保存 de 值以返回或简单地返回它
function getadress(latLong){
var adress ="";
geocoder.geocode( {'latLng': latLng},
function(results, status) {
if(status == google.maps.GeocoderStatus.OK) {
if(results[0]) {
adress = results[0].formatted_address; // wrong way result empty
alert(results[0].formatted_address); // result perfect adress
return results[0].formatted_address // result undefiened
}
else {
adress = "No results";
}
}
else {
adress = status;
}
});
return adress;
}
【问题讨论】:
-
地理编码器是异步的。您不能从异步回调虚构中返回任何内容。您需要在回调函数中使用响应,无论何时/何时可用。
-
我该如何上班
-
@geocodezip 这正是 OP 所做的。他们在回调
function(result,status)中利用地理编码的结果。 @Alberto 你的变量有错字latLong-->latLng -
return results[0].formatted_address在回调函数内部。 -
是的,所以?这不就是应该的吗?编辑:好的,我明白你的意思。确实,您不能从回调函数中返回任何内容。
标签: javascript google-maps geocode