美文网首页
php计算两个经纬度之间的距离

php计算两个经纬度之间的距离

作者: 潶渔 | 来源:发表于2019-05-05 09:40 被阅读0次

    QQ:1346883814

    /**

        * 计算两坐标之间距离

        * vic优化版

        * @param double $lat1

        *            起点纬度

        * @param double $lng1

        *            起点经度

        * @param double $lat2

        *            终点纬度

        * @param double $lng2

        *            终点经度

        * @return float 米

        */

        function getDistance($lat1, $lng1, $lat2, $lng2,$Arr = array())

        {

              $dx = $lng1 - $lng2; // 经度差值

              $dy = $lat1 - $lat2; // 纬度差值

              $b = ($lat1 + $lat2) / 2.0; // 平均纬度

              $Lx = deg2rad($dx) * 6367000.0* cos(deg2rad($b)); // 东西距离

              $Ly = 6367000.0 * deg2rad($dy); // 南北距离

              return round(sqrt($Lx * $Lx + $Ly * $Ly));//'米'; // 用平面的矩形对角距离公式计算总距离

        }

    /**

    *计算某个经纬度的周围某段距离的正方形的四个点

    *

    *@param lng float 经度

    *@param lat float 纬度

    *@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米

    *@return array 正方形的四个点的经纬度坐标

    */

    function returnSquarePoint($lng, $lat,$distance = 0.5){

          $dlng =  2 * asin(sin($distance / (2 * 6371)) / cos(deg2rad($lat)));

          $dlng = rad2deg($dlng);

          $dlat = $distance/6371;;

          $dlat = rad2deg($dlat);

          return array(

                'left-top'=>array('lat'=>$lat + $dlat,'lng'=>$lng-$dlng),

                'right-top'=>array('lat'=>$lat + $dlat, 'lng'=>$lng + $dlng),

                'left-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng - $dlng),

                'right-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng + $dlng)

            );

    }

    // //使用此函数计算得到结果后,带入sql查询。

    // $squares = returnSquarePoint($lng, $lat);

    // $info_sql = "select id,locateinfo,lat,lng from `lbs_info` where lat<>0 and lat>{$squares['right-bottom']['lat']} and lat<{$squares['left-top']['lat']} and lng>{$squares['left-top']['lng']} and lng<{$squares['right-bottom']['lng']} ";

    相关文章

      网友评论

          本文标题:php计算两个经纬度之间的距离

          本文链接:https://www.haomeiwen.com/subject/vwxcoqtx.html