国产探花免费观看_亚洲丰满少妇自慰呻吟_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. }  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六安市| 安国市| 蓝山县| 元江| 静安区| 玉溪市| 富宁县| 兴山县| 泾川县| 泰兴市| 潜江市| 北流市| 固原市| 昌邑市| 固阳县| 成安县| 乐安县| 新昌县| 玉门市| 珠海市| 赣榆县| 台湾省| 百色市| 全椒县| 灌云县| 塘沽区| 大同市| 鄂州市| 永宁县| 巨野县| 班戈县| 易门县| 柳江县| 雷州市| 安丘市| 体育| 石首市| 张北县| 万年县| 贺兰县| 东乡族自治县|