前言
首先,我們都知道,點和直線最短的距離就是點到直線的垂直距離。我們用直角三角板的直角邊,畫出的直線即爲所求,那麼,曲線呢?
問題轉化
我們把曲線切割成直線,那麼兩兩的最短距離就是那些直角邊畫出來的集合,因此,我們可以通過比較這些集合,求出相關的距離。可是,這在百度地圖中,卻不是最好的方案。
解決方案
將問題簡單化,百度地圖的曲線可以看成按某種精度連接起來的點集,我們可以通過求球體比較兩點之間的距離公式,簡單算出他們最短距離。
下面是求兩點間的最短距離公式:
假設兩點的座標分別爲A(x1,y1),B(x2,y2),圓的半徑爲r
圓心角爲θ
那麼
所以