【发布时间】:2011-09-19 19:16:24
【问题描述】:
我正在尝试为地图工具做一个简单的地理编码功能。我的地理编码很好,但我希望将位置对象作为地理编码函数的返回值传回。
类似这样的:
function codeAddress(address) {
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var location = results[0].geometry.location;
console.dir(location);
return location;
} else {
return false;
}
});
}
位置项的console.dir显示了预期的位置对象,因此该函数正在被调用并成功返回数据。
这个函数被另一个进程调用,然后它会构建标记。
if (coordinates = codeAddress(myaddress){
// do stuff
}
但是,coordinates 变量的计算结果始终为未定义,因此永远不会满足“做事”的条件。
我知道我可能遗漏了关于坐标 var 定义的一些非常明显的内容,但我不确定它是什么。
感谢您的帮助。
基本代码位于:http://jsfiddle.net/2TXZ4/3/,但无论出于何种原因,地图都没有绘制出来。
【问题讨论】:
-
好的,在我看来,问题在于这是一个异步请求——如果我在 codeAddress 函数中硬编码返回值,它就会按预期工作。所以它必须只是请求的性质。然而,仍然不确定如何最好地处理这个问题。
标签: javascript geolocation google-maps-api-3