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

首頁 > 語言 > PHP > 正文

php計算兩個坐標(經度,緯度)之間距離的方法

2024-09-04 11:49:29
字體:
來源:轉載
供稿:網友

例子一:

  1. function distance($lat1$lng1$lat2$lng2$miles = true){ 
  2.  $pi80 = M_PI / 180; 
  3.  $lat1 *= $pi80
  4.  $lng1 *= $pi80
  5.  $lat2 *= $pi80
  6.  $lng2 *= $pi80
  7.  $r = 6372.797;  
  8.  $dlat = $lat2 - $lat1
  9.  $dlng = $lng2 - $lng1
  10.  $a = sin($dlat/2)*sin($dlat/2)+cos($lat1)*cos($lat2)*sin($dlng/2)*sin($dlng/2); 
  11.  $c = 2 * atan2(sqrt($a), sqrt(1 - $a)); 
  12.  $km = $r * $c
  13.  return ($miles ? ($km * 0.621371192) : $km); 

例子二:

  1. /**  
  2.  * 計算兩個坐標之間的距離(米)  
  3.  * @param float $fP1Lat 起點(緯度)  
  4.  * @param float $fP1Lon 起點(經度)  
  5.  * @param float $fP2Lat 終點(緯度)  
  6.  * @param float $fP2Lon 終點(經度)  
  7.  * @return int  
  8.  */   
  9. function distanceBetween($fP1Lat$fP1Lon$fP2Lat$fP2Lon){   
  10.     $fEARTH_RADIUS = 6378137;   
  11.     //角度換算成弧度   
  12.     $fRadLon1 = deg2rad($fP1Lon);   
  13.     $fRadLon2 = deg2rad($fP2Lon);   
  14.     $fRadLat1 = deg2rad($fP1Lat);   
  15.     $fRadLat2 = deg2rad($fP2Lat);   
  16.     //計算經緯度的差值   
  17.     $fD1 = abs($fRadLat1 - $fRadLat2);   
  18.     $fD2 = abs($fRadLon1 - $fRadLon2);   
  19.     //距離計算   
  20.     $fP = pow(sin($fD1/2), 2) +   
  21.           cos($fRadLat1) * cos($fRadLat2) * pow(sin($fD2/2), 2);   
  22.     return intval($fEARTH_RADIUS * 2 * asin(sqrt($fP)) + 0.5);   
  23. }   
  24. /**  
  25.  * 百度坐標系轉換成標準GPS坐系  
  26.  * @param float $lnglat 坐標(如:106.426, 29.553404)  
  27.  * @return string 轉換后的標準GPS值:  
  28.  */   
  29. function BD09LLtoWGS84($fLng$fLat){ // 經度,緯度   
  30.     $lnglat = explode(','$lnglat);   
  31.     list($x,$y) = $lnglat;   
  32.     $Baidu_Server = "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x={$x}&y={$y}";   
  33.     $result = @file_get_contents($Baidu_Server);   
  34.     $json = json_decode($result);   
  35.     if($json->error == 0){   
  36.         $bx = base64_decode($json->x);   
  37.         $by = base64_decode($json->y);   
  38.         $GPS_x = 2 * $x - $bx;   
  39.         $GPS_y = 2 * $y - $by;   
  40.         return $GPS_x.','.$GPS_y;//經度,緯度   
  41.     }else   
  42.         return $lnglat;   
  43. }  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 井冈山市| 五常市| 阿图什市| 澄城县| 遂宁市| 白水县| 德州市| 阳高县| 淳安县| 吐鲁番市| 仪征市| 仁怀市| 通化县| 封开县| 太白县| 阿合奇县| 岢岚县| 朔州市| 仙居县| 沧源| 麻江县| 唐山市| 广丰县| 和硕县| 阿拉善盟| 从江县| 永吉县| 漠河县| 桐庐县| 来凤县| 邛崃市| 临湘市| 伊春市| 岳西县| 梓潼县| 乡宁县| 拜城县| 伊宁县| 威海市| 五台县| 海原县|