zoukankan      html  css  js  c++  java
  • php 计算gps坐标 距离

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

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

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

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


    一般从GPS得到的数据是经纬度。经纬度有多种表示方法。
    1.)  ddd.ddddd : 度 . 度的十进制小数部分(5位)例如:31.12035º
    2.) ddd.mm.mmm :度 . 分 . 分的十进制小数部分(3位)例如 31º10.335′
    3.) ddd.mm.ss :度 . 分 . 秒 例如 31º12’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);
    ?>
  • 相关阅读:
    在HTML中使用JavaScript
    七层网络模型
    JS执行机制
    继承
    变量作用域
    跨域
    ES6-Promise
    回调函数
    2019.3.9笔试
    CSS3新特性
  • 原文地址:https://www.cnblogs.com/yuyutianxia/p/3543165.html
Copyright © 2011-2022 走看看