php 计算gps坐标 距离

在计算机或GPS上经纬度经常用度、分、秒和度.度、分.分、秒.秒的混合方式进行表示,度、分、秒间的进 制是60进制,度.度、分.分、

秒.秒的进制是100进制,换算时一定要注意。可以近似地认为每个纬度之间的距离是不变的111KM,每分间 1.85KM,每秒间31.8M。经

度间的距离随纬度增高逐渐减小,可按以下公式计算:

  经度1°长度=111.413cosφ一0.094cos3φ公里(纬度φ处)。


一般从GPS得到的数据是经纬度。经纬度有多种表示方法。
1.)  ddd.ddddd : 度 . 度的十进制小数部分(5位)例如:31.12035o
2.) ddd.mm.mmm :度 . 分 . 分的十进制小数部分(3位)例如 31o10.335′
3.) ddd.mm.ss :度 . 分 . 秒 例如 31o12’42″



关于经纬度坐标转换的方法


例:57°55’56.6″ =57+55/60+56.6/3600=57.9323888888888

 

<?php
function rad($d){
    return $d * 3.1415926535898 / 180.0;
}
function GetDistance($lat1, $lng1, $lat2, $lng2){
     $EARTH_RADIUS = 6378.137;

     $radLat1 = rad($lat1);   
     $radLat2 = rad($lat2);  
     $a = $radLat1 - $radLat2;  

     $b = rad($lng1) - rad($lng2);

     $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 * 10000) / 10000;
     return $s;
}

echo GetDistance(116.480733,39.98684,117.480733,39.98684);
?>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。