常見問題01:計算地球上兩個點的距離
原始碼:
場景
希望找到地球上兩個座標之間的距離
問題
由於地球不是平的,使用一個標準的勾股定理公式並不能得到兩個位置之間的準確距離。
解決方案
function sphere_distance($lat1, $lon1, $lat2, $lon2, $radius = 6378.135) { $rad = floatval(M_PI/180.0); $lat1 = floatval($lat1) * $rad; $lon1 = floatval($lon1) * $rad; $lat2 = floatval($lat2) * $rad; $lon2 = floatval($lon2) * $rad; $theta = $lon2 - $lon1; $dist = acos(sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($theta)); if($dist說明
sphere_distance()可以接受另一個球半徑作為第五個引數(可選),這允許你計算其它星球上兩點間的距離。
參考
《PHP經典例項》 David Sklar & Adam Trachtenberg
作者:Nosee123
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1727/viewspace-2810840/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql 計算兩個經緯度點之間的距離SQL
- 計算地圖中兩點之間的距離地圖
- C語言:使用函式計算兩點間的距離C語言函式
- 百度地圖計算兩座標點之間距離計算地圖
- JAVA計算兩經緯度間的距離Java
- 根據經緯度計算兩點之間的距離的公式公式
- Php兩點地理座標距離的計算方法和具體程式碼PHP
- 數學中的常見的距離公式公式
- 根據兩點經緯度計算距離和角度——java實現Java
- 微信小程式——計算2點之間的距離微信小程式
- 定義Point類,採用友元類的方式計算兩個點之間的水平和垂直距離
- OpenStack及雲端計算(面試)常見問題面試
- 空間資料庫三維空間兩點距離計算錯誤資料庫
- 二叉樹中最遠的兩個結點的距離二叉樹
- 空間距離計算
- 通過sql 計算兩經緯度之間的距離SQL
- iOS開發中兩個常見問題的處理iOS
- 簡單計算給定兩個給定經緯度座標的距離
- 經緯度計算兩地之間的距離(原理與方法)
- java 根據兩個位置的經緯度,來計算兩地的距離 經緯度處理Java
- 28、(向量)歐幾里得距離計算
- RecyclerView滑動距離計算View
- 計算字串編輯距離字串
- 【谷歌面試題】求陣列中兩個元素的最小距離谷歌面試題陣列
- 常見的雲端計算安全問題以及如何解決
- eMarketer:定位廣告的距離問題
- Vijos1680距離/openjudge2988計算字串的距離[DP]字串
- Levenshtein:計算字串的編輯距離字串
- 雲端計算面試常見問題,怎麼理解shell?面試
- 雲端計算 常見問題案例彙總情況
- PostgreSQL遺傳學應用-矩陣相似距離計算(歐式距離,…XX距離)SQL矩陣
- 程式設計師世界常見的6個問題程式設計師
- 一個浮點數計算的問題
- Java二叉樹排序及任意兩點個節點間的最大距離Java二叉樹排序
- 域名解析常見問題(上)
- milvus 使用 l2 歐式距離計算向量的距離,計算出來的距離的最大值是多少?
- 求二叉樹的給定兩個結點之間的距離二叉樹
- java 根據GPS經緯度座標計算兩點的直線距離的演算法Java演算法