我正在使用Google Maps API来获取两个英国邮编之间的距离。
var yourPostcode = $("#YourPostcode").val();
var restaurantPostcode = $("#Postcode").val();
var point1 = GetPointFromPostcode(yourPostcode);
var point2 = GetPointFromPostcode(restaurantPostcode);
var distance = point1.distanceFrom(point2, 3959).toFixed(1);
然而,GetPoint函数是异步调用Google API的,因此在计算距离时,点1和点2尚未设置(我认为这就是所发生的事情?)。我还在每个语句后面添加了警报以检查变量的值。通过这样做,我得到了正确的距离值,等待我点击确定可能给了它足够的时间来获取结果?虽然现在它不再这样做了 :( 这是获取点函数。
function GetPointFromPostcode(postcode) {
var point;
localSearch.execute(postcode + ", UK");
if (localSearch.results[0]) {
var resultLat = localSearch.results[0].lat;
var resultLng = localSearch.results[0].lng;
point = new GLatLng(resultLat, resultLng);
} else {
$(".PostcodeError").append("Postcode Invalid");
}
return point;
}
我知道我可以在本地搜索上设置回调函数,在结果返回时调用,但这里有两个搜索的问题。
我想要的是在两个搜索都返回结果后才调用计算距离的代码。
你知道我该怎么做吗?
谢谢