我的JavaScript应用程序中有一个场景,其中我有一个由纬度和经度组成的起点的坐标,同样,还有一个终点及其相应坐标。
现在,我需要搜索一个基本上提供一组坐标的位置,并确定最近输入的位置是否位于上述起点或终点之间。但是,位置不需要在起点和终点的路径内精确匹配。即使该位置位于距离派生路径大约2-3 km的距离处,也应该给出匹配项。
我相信我们可以通过提供三个坐标即起点,终点和第三个点来创建三角形。因此,一旦三角形形成,我们就可以使用google.maps.geometry.poly.containsLocation方法查找我们搜索到的位置是否存在于该三角形内。
所以我的问题是,我们如何获得第三个点来创建一个三角形,该三角形将提供从起点到终点在2-3公里范围内的位置。
还有其他方法可以处理我的用例吗?
最佳答案
使用googlemap的几何库
此功能专门
isLocationOnEdge
这是一个例子
0.001公差值为100m
var isLocationNear = google.maps.geometry.poly.isLocationOnEdge(
yourLatLng,
new google.maps.Polyline({
path: [
new google.maps.LatLng(point1Lat, point1Long),
new google.maps.LatLng(point2Lat, point2Long),
]
}),
.00001);