我正在使用Google Maps API来获取2个英国邮政编码之间的距离.
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;
}
我知道我可以在本地搜索时设置回调,以便在结果返回时调用,但问题是这里有2次搜索.
你知道怎么做吗?
谢谢
最佳答案