我有一个问题。 我想计算当前位置和计算路线之间的距离。我正在使用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);
}
});
我不确定这是获得我想要的结果的好方法。
有人可以帮助我吗?
答案 0 :(得分:0)
首先,您可能希望在isLocationOnEdge
方法中设置容差。也许这一点只是一点点。默认容差为10 ^ -9,非常小。有关详细信息,请参阅documentation。
你真的需要到路线的距离吗?或者是否足以知道标记是否在您的路线上?
如果是这样,您可能需要查看此similar question
建议使用containsLocation()
方法。
如果你真的想计算距离,那么根据this post
我不得不说这是不可能的。