2017-08-02 88 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的源代碼。