登录  /  注册
博主信息
博文 176
粉丝 1
评论 0
访问量 432140
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php实现计算百度地图坐标之间距离的方法
dxp2tq的博客
原创
1307人浏览过

<?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;

}


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学