如果我有兩個已知位置和已知速度,如何計算距離d(單位爲公里)內的當前位置?在給定兩個點的某個時間找到gps位置?
例如,給定:在ES4236
兩個GPS位置:
37.783333, -122.416667 # San Francisco
32.715, -117.1625 # San Diego
在一條直線上在1公里/分鐘旅行(忽略高度)
如何能我發現GPS在一定距離處座標?類似的SO question在geopy
中使用VincentyDistance根據方位和距離計算下一個點。
我猜,更具體:
如何計算使用
geopy
兩個GPS點之間的關係呢?使用VincentyDistance通過方位和距離獲取下一個GPS點,我怎麼知道我是否已經到達目的地,或者我應該繼續前進?它不需要完全在目的地被認爲是到達目的地。也許任何半徑0.5公里的地方被認爲是「抵達」。
即
import geopy
POS1 = (37.783333, -122.416667) # origin
POS2 = (32.715, -117.1625) # dest
def get_current_position(d):
# use geopy to calculate bearing between POS1 and POS2
# then use VincentyDistance to get next coord
return gps_coord_at_distance_d
# If current position is within .5 km of destination, consider it 'arrived'
def has_arrived(curr_pos):
return True/False
d = 50 # 50 km
print get_current_position(d)
print has_arrived(get_current_position(d))
Duplicates http://stackoverflow.com/questions/24427828/calculate-point-based-on-distance-and-direction – James
@James啊謝謝,但它計算的距離向北1km(軸承),而不是邁向第二點。此外,我無法在geopy中找到任何關於'VincentyDistance'的文檔,所以我很難看出它是否可以基於兩點來計算。 – tempomax