网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 php实现计算百度地图坐标之间距离的方法
范文
    本文实例讲述了php实现计算百度地图坐标之间距离的方法。分享给大家供大家参考,具体如下:
    下面是网上的代码,使用的时候需要进行些许修改
    第一个函数是获得范围,参数为纬度经度半径
    第二个函数是计算坐标距离
    <?php
    define('PI',3.1415926535898);
    define('EARTH_RADIUS',6378.137);
    //计算范围,可以做搜索用户
    function GetRange($lat,$lon,$raidus){
      //计算纬度
      $degree = (24901 * 1609) / 360.0;
      $dpmLat = 1 / $degree;
      $radiusLat = $dpmLat * $raidus;
      $minLat = $lat - $radiusLat; //得到最小纬度
      $maxLat = $lat + $radiusLat; //得到最大纬度
      //计算经度
      $mpdLng = $degree * cos($lat * (PI / 180));
      $dpmLng = 1 / $mpdLng;
      $radiusLng = $dpmLng * $raidus;
      $minLng = $lon - $radiusLng; //得到最小经度
      $maxLng = $lon + $radiusLng; //得到最大经度
      //范围
      $range = array(
        'minLat' => $minLat,
        'maxLat' => $maxLat,
        'minLon' => $minLng,
        'maxLon' => $maxLng
      );
      return $range;
    }
    //获取2点之间的距离
    function GetDistance($lat1, $lng1, $lat2, $lng2){
      $radLat1 = $lat1 * (PI / 180);
      $radLat2 = $lat2 * (PI / 180);
      $a = $radLat1 - $radLat2;
      $b = ($lng1 * (PI / 180)) - ($lng2 * (PI / 180));
      $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;
    }
    希望本文所述对大家PHP程序设计有所帮助。
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/18 23:55:50