PHP根據經緯度計算兩地之間的距離

2021-07-29 06:16:49 字數 934 閱讀 9330

php計算兩點的距離,無外乎兩種方法:一種是呼叫地圖介面,其次是純數學計算(計算球面上兩個點之間的距離)!

方法一:呼叫介面

地圖api會有自己的演算法,可能會根據實際情況路線計算距離,比如說不能直接直線到達,需要繞行,會計算繞行的路線的長度。但缺點是需要開發金鑰(key),而且一般來說每天會有請求次數限制。

/**

* 根據起點座標和終點座標測距離[

* @param [array] $from [起點座標(經緯度),例如:array(118.012951,36.810024)]

* @param [array] $to [終點座標(經緯度)]

* @return [string] 距離數值

*/function get_distance($from,$to)

方法二:數學計算

利用數學公示計算,簡單粗暴,計算出來的是絕對直線距離,無法直接到達的也會按直線計算。

/**

* 根據起點座標和終點座標測距離

* @param [array] $from [起點座標(經緯度),例如:array(118.012951,36.810024)]

* @param [array] $to [終點座標(經緯度)]

* @param [bool] $km 是否以公里為單位 false:公尺 true:公里(千公尺)

* @param [int] $decimal 精度 保留小數字數

* @return [string] 距離數值

*/function get_distance($from,$to,$km=true,$decimal=2)

return round($distance, $decimal);

}

PHP根據經緯度計算兩地之間的距離

php計算兩點的距離,無外乎兩種方法 一種是呼叫地圖介面,其次是純數學計算 計算球面上兩個點之間的距離 方法一 呼叫介面 地圖api會有自己的演算法,可能會根據實際情況路線計算距離,比如說不能直接直線到達,需要繞行,會計算繞行的路線的長度。但缺點是需要開發金鑰 key 而且一般來說每天會有請求次數限...

根據經緯度計算兩地距離

最近工作需要,網上搜尋了下根據經緯度計算兩地距離的方法,發現要麼是幾何法,畫圖 作一堆輔助線,然後證明推理,要麼二話不說直接套公式。這篇文章介紹一種容易理解的方式來求這個距離。地球是個不規則的橢球體 為了簡便我們當作球體來計算。球體上兩地的最短距離就是經過兩點的大圓的劣弧長度。思路如下 弧長 弦長 ...

在 Oracle 中根據經緯度計算兩地之間的距離

在 oracle 中根據經緯度計算兩地之間的距離 獲得弧度的函式 create or replace function radian d number return number ispi number 3.141592625 begin return d pi 180.0 end 測試一下這個函式...