2010年9月28日 星期二

經緯度計算兩點的距離

 *此文件在計算取得兩點的經緯度後記算出距離
 *利用GOOGLE提供的路線規划算出距離,根此公式做比較,路線會有彎曲,而公式
   計算兩點弧度長(沒記錯的話,有錯請指教),相差大概幾公尺精準度還蠻高的
 *在這提供我參考的網址



<?php
//利用google map 或者 Urmap所提供地區之經緯度
//說明:$distance('經度','緯度','經度','緯度'),以下為測試例子,
可自行設定或者依照個人需求把經緯度帶入function 
$distance=getdistance(120.31367489180009,22.655643980818073, 
120.32347707666207,22.650151037488126);
 
echo $distance;



//$distance=292.365326134
function getdistance($lng1,$lat1,$lng2,$lat2)//根據經緯度計算計離 { //將角度轉換為弧度 $radLat1=deg2rad($lat1); $radLat2=deg2rad($lat2); $radLng1=deg2rad($lng1); $radLng2=deg2rad($lng2); $a=$radLat1-$radLat2;//兩緯度之差,緯度<90 $b=$radLng1-$radLng2;//兩經度之差,精度<180 //以下是根據google map的距離計算方式所換算出來的公式, //相關網站已經遺失..有找到在補上 $s=2*asin(sqrt(pow(sin($a/2),2) +
 cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137;
return $s;
}
?>  

沒有留言: