2017-08-02 53 views
2

我使用GPX文件中的锚点在MapControl上绘制了MapPolyline。我怎样才能检测到我的位置离开Polyline?我尝试测量锚点之间的距离,如果它关闭了20米,我会提出一个偏离路线的错误。这个问题是在一条直线上,锚点彼此之间真的很远,而我仍然在PolyLine上,偏离错误得到提升。从UWP中的MapControl上的MapPolyline检测偏离路线

看看这个:

enter image description here

正如你可以看到我的路要走课程。如何检测这个?

Google的Maps API JavaScript API有一个名为isLocationOnEdge()的方法。有没有像UWP那样的东西?

+0

如果没有提供,您可以手动计算距离。从两个连接点(A和B)中取出一条直线从多段线中移出,并与位置点形成一个三角形。如果任何角度大于90°,​​则距离为点A到LP和点B到LP的最小距离;如果所有角度<90°,则距离为从LP到线的垂直距离。然后将相同的公式应用于其他行,并确定哪一个最短。 –

回答

0

我解决了这个问题,将Google的PolyUtil从谷歌地图SDK移植到UWP上,并且它很有用。

这里是PolyUtil的源代码。