获取当前位置和计算路线之间的距离

时间:2015-03-25 07:42:09

标签: javascript google-maps

我有一个问题。 我想计算当前位置和计算路线之间的距离。我正在使用Google Maps API v3来计算路线。我试过使用google.maps.geometry.poly.isLocationOnEdge,但它没有用。

这是我的代码:

directionsService.route(request, function(result, status) {

    if (status == google.maps.DirectionsStatus.OK){

        var poly = new google.maps.Polyline({
            paths:new Array(result.routes[0].overview_path)
        });

        var currentPosition = new google.maps.LatLng(51.574470000000005, 4.32713);

        if(google.maps.geometry.poly.isLocationOnEdge(currentPosition, poly)){
            console.log("On route");    
        }else{
            console.log("Not on route");
        }

        var directionsDisplay = new google.maps.DirectionsRenderer({
            polylineOptions: {
                strokeColor: color,
                strokeWeight: 3
            }
        });

        directionsDisplay.setMap(map);
        directionsDisplay.setDirections(result);

    }
});

我不确定这是获得我想要的结果的好方法。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

首先,您可能希望在isLocationOnEdge方法中设置容差。也许这一点只是一点点。默认容差为10 ^ -9,非常小。有关详细信息,请参阅documentation

你真的需要到路线的距离吗?或者是否足以知道标记是否在您的路线上?

如果是这样,您可能需要查看此similar question

建议使用containsLocation()方法。

如果你真的想计算距离,那么根据this post

我不得不说这是不可能的。
相关问题