我尝试使用google maps api获取两点之间的距离,
function load_points(){
var geocoder = new GClientGeocoder();
var firstZip, secondZip;
geocoder.getLatLng(document.getElementById("firstZip").value, function(point) {
if (!point) {
alert("This point could not be geocoded");
} else {
firstZip = point;
var marker = new GMarker(point);
map.addOverlay(marker);
}
});
geocoder.getLatLng(document.getElementById("secondZip").value, function(point) {
if (!point) {
alert("This point could not be geocoded");
} else {
secondZip = point;
var marker = new GMarker(point);
map.addOverlay(marker);
}
});
alert(new GLatLng(firstZip).distanceFrom(new GLatLng(secondZip)));
}
问题是,当我尝试它时,似乎首先执行警报,然后执行地理编码部分,当然,distanceFrom方法失败,因为firstZip和secondZip的值未定义。有人知道如何解决它?
答案 0 :(得分:1)
getLatLng
函数是异步的,因此在尝试使用firstZip
和secondZip
变量之前,您需要等待对它的两次调用都成功返回。