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 相关文章推荐
模仿OSO的论坛(一)
Oct 09 PHP
模拟flock实现文件锁定
Feb 14 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
php自动加载机制的深入分析
Jun 08 PHP
php导入导出excel实例
Oct 25 PHP
php中JSON的使用与转换
Jan 14 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
Jul 19 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
PHP4在Windows2000下的安装
2006/10/09 PHP
谈谈PHP的输入输出流
2007/02/14 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
2016/04/17 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
Vue实现背景更换颜色操作
2020/07/17 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
python正则表达式的使用
2017/06/12 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
python中安装django模块的方法
2020/03/12 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
企业宣传方案
2014/03/04 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书