2012-05-25 88 views
0

我在構建地理感知iPhone應用程序,我想計算用戶位置和兩點之間的線條之間的距離。我發現這個答案,做這樣的事情:查找地圖上線條和點之間的距離

Shortest distance between a point and a line segment

然而,這並不考慮該線是有限的 - 如果用戶遠離線,但附近的地方無限投影線會是,它會以點和無限投影之間的距離出現,而不是線上最近的點。

+0

我想你是在談論一個球體表面上的圓,其中「線」總是「圓」 – meronix

+0

技術上是的,但是我想我所處理的距離足夠小,以至於我可以將它們視爲歐幾里德座標而不是球座標 - 這是否是一種有效的簡化? – benwad

+0

也許你可以抽取一組樣本點(有合理的資料),並比較每個點,當你達到點的末端或開始遠離最後點時離開。 – picknick

回答

1

使用您鏈接的解決方案如您所描述的那樣,爲您提供無限的一點。然後檢查該點是否在有界線內(即x座標位於最小和最大x座標內,y座標相同)。如果它確實然後返回。否則,最接近的點是終點之一。弄清楚哪個。完成。

+0

@MBo確定了實際的解決方案。 't'的值告訴你一切你需要知道測試點在有限行上的位置。 – acraig5075

1

,如果你有AB線和點P,你應該從點P到AB線,那麼距離AP和BP找到距離和選擇最短的一個(抱歉壞英文)