Routes 捕捉到第二个最近的位置

Routes 捕捉到第二个最近的位置,routes,geospatial,haskell-snap-framework,turfjs,Routes,Geospatial,Haskell Snap Framework,Turfjs,在我的一个项目中,我使用TurpJS库来确定到目标的距离,使用定义的路线作为我的基准,但由于GPS漂移,我有一种情况,即点捕捉到道路/路线的“另一侧” 有没有办法让第二个最近的线元素返回,理论上应该是返回目的地的线 任何建议都很好 PS-图像是一种表示,其中roue实际上回到同一条道路上 首先,观察:第二条线段可能与第一条线段位于同一条“错误”的线段上 我要使用的是lineSlice函数。一旦你知道车辆通过了特定的点,切掉这条线并得到剩下的部分。然后仅使用剩余部分找到最近的点。感谢@michae

在我的一个项目中,我使用TurpJS库来确定到目标的距离,使用定义的路线作为我的基准,但由于GPS漂移,我有一种情况,即点捕捉到道路/路线的“另一侧”

有没有办法让第二个最近的线元素返回,理论上应该是返回目的地的线

任何建议都很好

PS-图像是一种表示,其中roue实际上回到同一条道路上


首先,观察:第二条线段可能与第一条线段位于同一条“错误”的线段上


我要使用的是
lineSlice
函数。一旦你知道车辆通过了特定的点,切掉这条线并得到剩下的部分。然后仅使用剩余部分找到最近的点。

感谢@michael entin提供的见解和建议。你说得很对,在路线上,该点也可能会捕捉到“另一边”,然后看起来车辆还有较短的距离要走,而实际上它还有一段路要走。。。这里有点反常。顺便说一句,我想你也可以同样地估计行驶的最大距离,并对路径的末端进行切片,以减少错误匹配。使用切片是一种很好的方法,因为你可以只使用线的长度,但gps漂移仍将发挥作用,好像它捕捉到了错误的一侧,它将抛出计算(图像有点模糊-想象一下,如果实际返回相同的路径)…我使用nearestPointOnLine函数给出长度
var pt=turp.point([ptLongitudeX,ptLatitudeY]);var RouteLenth=草皮长度(routeData,{单位:'km'});var ptsnaped=turp.nearestPointOnLine(路由数据,pt,{单位:'km'});var-ptDistFromStart;propEach(ptsnaped,function(currentProperties,featureIndex){ptDistToLine=currentProperties['dist']*1000;//获取米ptDistFromStart=currentProperties['location'];//公里数});var ptDistToFinish=RouteLenth-ptDistFromStart//公里数