在计算机或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
<?phpfunction 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);?>
原文:http://www.cnblogs.com/yuyutianxia/p/3543165.html