[英]Find out if a GPS waypoint has been passed
想想幾個參加馬拉松比賽的選手。 運動員都戴着GPS設備。 賽道本身沒有傳感器,我需要知道每位運動員何時越過一組預定的GPS坐標。 但是,由於軌道/道路可能足夠寬,因此使用了軌道/道路的不同部分,因此每個運動員可能以稍微不同的緯度/經度越過航路點。
確定運動員是否已通過航點的最佳方法是什么?
我正在使用Python,並且願意使用外部庫。 我正在使用預處理的GPS數據,因此每個時間點只有緯度和經度(以及其他一些零碎的信息,例如速度和行進距離)。
您可以嘗試以下方法: 航路點是兩個軌跡(線)段相交的點(圖片中的黑線)。 繪制一條與通過航路點的線段之一正交的線,用於在該航路點相交的兩條線段中的每條線(圖中的紅色和藍色線穿過該航路點)。 當跑步者進入圖片中標記為紅色的區域時,該跑步者被視為在航路點附近(假設跑步者來自右側)。 一段時間后,跑步者可能會進入圖片中標記為藍色的區域-發生這種情況時,跑步者已通過航路點。
如果賽跑者從未出現在標記為藍色的區域中,表明賽跑者偏離了賽道,則說明航路點尚未通過。
恕我直言,有幾種方法可以解決您的問題。 我想到的第一個是:
from shapely.geometry import LineString
line1 = LineString([(i, i) for i in range(5)])
line2 = zip(range(5)[::-1], range(5))
if line1.crosses(line2):
print 'yeah!'
添加一個循環並迭代每條航路點
其他可能的選擇:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.