国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php利用百度api計算兩地距離的代碼

2024-05-04 21:49:48
字體:
供稿:網(wǎng)友

兩地距離我們通常用到最多的就是調(diào)用百度地圖的api來實現(xiàn)了,但有時我們并不需要這接口了只需要簡單的處理一即可,這時可以利用php來實現(xiàn),具體如下.

目前在做一個交友項目,需要知道兩個用戶之間的距離,百度了一下,操作如下,我們最容易獲取到用戶地理位置的信息就是ip。

我們通過百度api獲取用戶經(jīng)緯度,用ip獲取經(jīng)緯度api:

http://developer.baidu.com/map/index.php?title=webapi/ip-api

得到經(jīng)緯兩個用戶經(jīng)緯度之后就可以計算兩用戶之間的距離了,計算如下:

  1. /**  
  2. * @desc 根據(jù)兩點間的經(jīng)緯度計算距離  
  3. * @param float $lat 緯度值  
  4. * @param float $lng 經(jīng)度值  
  5. */ 
  6. function getDistance($lat1$lng1$lat2$lng2)  
  7. {  
  8. $earthRadius = 6367000; //approximate radius of earth in meters  
  9.    
  10.    
  11. $lat1 = ($lat1 * pi() ) / 180;  
  12. $lng1 = ($lng1 * pi() ) / 180;  
  13.    
  14. $lat2 = ($lat2 * pi() ) / 180;  
  15. $lng2 = ($lng2 * pi() ) / 180;  
  16. //開源軟件:Vevb.com 
  17.  
  18. $calcLongitude = $lng2 - $lng1;  
  19. $calcLatitude = $lat2 - $lat1;  
  20. $stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);  
  21. $stepTwo = 2 * asin(min(1, sqrt($stepOne)));  
  22. $calculatedDistance = $earthRadius * $stepTwo;  
  23.    
  24. return round($calculatedDistance);  
  25. }  

代碼未經(jīng)測試,測試后再更新本篇文章告知結(jié)果.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 井研县| 三明市| 水城县| 南通市| 枞阳县| 杭州市| 葵青区| 理塘县| 吉木萨尔县| 平山县| 大余县| 京山县| 那曲县| 平谷区| 玛曲县| 遵义市| 舞钢市| 青岛市| 连云港市| 桐柏县| 治县。| 泰兴市| 介休市| 威远县| 鄂温| 鄱阳县| 昭苏县| 建昌县| 丹江口市| 江安县| 高台县| 汶上县| 隆子县| 伊通| 城固县| 德格县| 木里| 辽阳县| 聂拉木县| 镇坪县| 房山区|