2个邮政编码之间的距离

ddd*_*ddd 5 javascript jquery google-maps geocoding

我正在使用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);
Run Code Online (Sandbox Code Playgroud)

但是,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;
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以在本地搜索时设置回调,以便在结果返回时调用,但问题是这里有2次搜索.

我想要的是在BOTH搜索返回结果后才调用计算距离线.

你知道怎么做吗?

谢谢

Chr*_*nce 4

如果您能够获取每个邮政编码的 GPS 坐标(纬度、经度),请构建一个 Javascript 距离函数。

在 C#中找到它,但如果您想在 JS 中重现它,概念是相同的。