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

首頁 > 語言 > PHP > 正文

php如何計算兩坐標點之間的距離

2024-05-05 00:06:06
字體:
來源:轉載
供稿:網友

本文實例為大家分享了php計算兩坐標點之間距離的實現代碼,供大家參考,具體內容如下

地球上兩個點之間,可近可遠。 

當比較近的時候,可以忽略球面因素,當做是一個平面,這樣就有了兩種計算方法。

//兩點間距離比較近function getDistance($lat1, $lng1, $lat2, $lng2) {  $earthRadius = 6367000; //地球半徑m $lat1 = ($lat1 * pi() ) / 180;  $lng1 = ($lng1 * pi() ) / 180;  $lat2 = ($lat2 * pi() ) / 180;  $lng2 = ($lng2 * pi() ) / 180;  $calcLongitude = $lng2 - $lng1;  $calcLatitude = $lat2 - $lat1;  $stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);  $stepTwo = 2 * asin(min(1, sqrt($stepOne)));  $calculatedDistance = $earthRadius * $stepTwo;  return round($calculatedDistance); } //兩點間距離比較遠function getLongDistance($lat1, $lng1, $lat2,$lng2,$radius = 6378.137){ $rad = floatval(M_PI / 180.0); $lat1 = floatval($lat1) * $rad; $lng1 = floatval($lng1) * $rad; $lat2 = floatval($lat2) * $rad; $lng2 = floatval($lng2) * $rad; $theta = $lng2 - $lng1; $dist = acos(sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($theta)); if ($dist < 0 ) {  $dist += M_PI; } return $dist = $dist * $radius;}

小編再為大家分享一段php坐標之間距離的求解代碼:

 <?php  define('EARTH_RADIUS', 6378.137);//地球半徑  define('PI', 3.1415926);  /**  * 計算兩組經緯度坐標 之間的距離  * params :lat1 緯度1; lng1 經度1; lat2 緯度2; lng2 經度2; len_type (1:m or 2:km);  * return m or km  */  function GetDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2)  {  $radLat1 = $lat1 * PI / 180.0;  $radLat2 = $lat2 * PI / 180.0;  $a = $radLat1 - $radLat2;  $b = ($lng1 * PI / 180.0) - ($lng2 * PI / 180.0);  $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));  $s = $s * EARTH_RADIUS;  $s = round($s * 1000);  if ($len_type > 1)  {  $s /= 1000;  }  return round($s, $decimal);  }  echo GetDistance(39.908156,116.4767, 39.908452,116.450479, 1);//輸出距離/米 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 卫辉市| 辽阳市| 廉江市| 新沂市| 万州区| 嘉禾县| 武胜县| 镶黄旗| 绵竹市| 金阳县| 正蓝旗| 锡林郭勒盟| 资溪县| 永平县| 永寿县| 合水县| 定结县| 平凉市| 罗城| 青龙| 金湖县| 潞西市| 莎车县| 富顺县| 东兰县| 布尔津县| 雅江县| 斗六市| 治县。| 滦平县| 晋中市| 邵东县| 楚雄市| 永昌县| 稷山县| 德格县| 孝义市| 涟水县| 浦城县| 镇雄县| 格尔木市|