我有一组预定的路线(红色),司机将带到相同的位置,但起点不同,n个英里数。
我试图实施的算法是希望出现的乘客(蓝点)可以使用他们的接送地址进行搜索并与最接近驾驶的驾驶员匹配(不超过y英里)对他们来说,他们可以接受他们。
我最初想过通过使用乘客的位置作为质心绘制多边形并检查多边形是否与任何路线相交来接近此。我想到的另一种方法是切割路线并检查点是否落在任何切片上。然而,这两种方法可能会产生显着的开销,特别是在扩展到500多种不同的路由时。
答案 0 :(得分:1)
不知道还有多少人需要这样做,但我最终使用谷歌地图获取路线的折线,将其解码为地理点,将它们保存到elasticsearch中,然后我就能找到在elasticsearch中使用简单地理空间搜索的最近路线。
答案 1 :(得分:0)
您可以使用Map Matching。检索到匹配项时,它会返回最靠近输入轨迹的道路和路径网络上的路径。
此SO帖子 - Determining path user is on based on GPS location以及Get closest point to a line中的给定逻辑可能会对您有所帮助。