我有一個表示路徑的座標列表(緯度/經度)。 給定一定的半徑和另一個座標,我需要檢查座標是否在路線中(在任何點的給定半徑範圍內),以及距離路線起點的距離。查找Python中路由起點的座標距離
我看着shapely
,它看起來像一個很好的解決方案。
我開始通過創建一個StringLine
from shapely.geometry import LineString
route = LineString[(x,y),(x1,y1)...]
然後到檢查點是我添加了一個緩衝的路線附近和路口檢查
from shapely.geometry import Point
p = Point(x,y)
r = 0.5
intersection = p.buffer(r).intersection(route)
if intersection.is_empty:
print "Point not on route"
else:
# Calculate P distance from the begning of route
我被困計算距離。我雖然也許在p分裂路線,並測量上半年的length
,但我得到的交集結果是HeterogeneousGeometrySequence
,我不知道我可以做什麼。
感謝這一個幫助。
EDIT
我相信我找到了解決
if p.buffer(r).intersects(route):
return route.project(p)
如果你有座標的起點和終點,你可以簡單地使用距離公式:http://www.purplemath.com/modules/distform.htm – 2015-03-02 08:29:20
嘿@Afaan Bilal,我不是地理位置專家,但我相信,簡單的距離計算不是100%準確的地理計算(世界是圓的......)。另外,我正在尋找一個使用某種包的完整解決方案。 – haki 2015-03-02 08:34:26
我實際上是在一部手機上,所以只是給你的標題發表評論,不能看完整的來源,很多時候我們中最偉大的專家忘記了最簡單的事情,你知道,這就是爲什麼我認爲也許你只是需要計算平坦的直線距離! – 2015-03-02 08:39:10