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

2021-08-04 09:51:30 字數 996 閱讀 8205

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

方法一:呼叫介面

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

[php]view plain

copy

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

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

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

* @return [string]  距離數值

*/function get_distance($from,$to)  

方法二:數學計算

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

[php]view plain

copy

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

* @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 測試一下這個函式...