php实现计算百度地图坐标之间距离的方法


Posted in PHP onMay 05, 2016

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
PHP语法速查表
Dec 06 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
php 删除cookie和浏览器重定向
Mar 16 PHP
php中的三元运算符使用说明
Jul 03 PHP
深入PHP FTP类的详解
Jun 13 PHP
smarty模板局部缓存方法使用示例
Jun 17 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
PHP时间相关常用函数用法示例
Jun 03 PHP
php求数组全排列,元素所有组合的方法
May 05 #PHP
php遍历解析xml字符串的方法
May 05 #PHP
Joomla调用系统自带编辑器的实现方法
May 05 #PHP
yii2超好用的日期组件和时间组件
May 05 #PHP
Joomla语言翻译类Jtext用法分析
May 05 #PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 #PHP
joomla实现注册用户添加新字段的方法
May 05 #PHP
You might like
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
jquery获取节点名称
2015/04/26 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
python的keyword模块用法实例分析
2015/06/30 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
Python for循环与getitem的关系详解
2020/01/02 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
交通事故责任认定书
2015/08/06 职场文书
远程教育培训心得体会
2016/01/09 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
JavaScript实例 ODO List分析
2022/01/22 Javascript