百度地圖求點和雙向曲線的最短距離的優化方案及建議

前言

首先,我們都知道,點和直線最短的距離就是點到直線的垂直距離。我們用直角三角板的直角邊,畫出的直線即爲所求,那麼,曲線呢?

問題轉化

我們把曲線切割成直線,那麼兩兩的最短距離就是那些直角邊畫出來的集合,因此,我們可以通過比較這些集合,求出相關的距離。可是,這在百度地圖中,卻不是最好的方案。

解決方案

將問題簡單化,百度地圖的曲線可以看成按某種精度連接起來的點集,我們可以通過求球體比較兩點之間的距離公式,簡單算出他們最短距離。
下面是求兩點間的最短距離公式:

假設兩點的座標分別爲A(x1,y1),B(x2,y2),圓的半徑爲r
AB=\sqrt{[(x1-x2)^2+(y1-y2)^2]}
圓心角爲θ
那麼sin(\theta /2)=(AB/2)/r=\sqrt{[(x1-x2)^2+(y1-y2)^2]/(2r)}
所以\theta =2arcsin(\sqrt{[(x1-x2)^2+(y1-y2)^2]/(2r)})

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章