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的ob_start();控制您的浏览器cache!
Feb 14 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
php+ajax实现无刷新的新闻留言系统
Dec 21 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 PHP
详解laravel安装使用Passport(Api认证)
Jul 27 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
jQuery+PHP实现可编辑表格字段内容并实时保存
2015/10/09 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
值得分享的Bootstrap Table使用教程
2016/11/23 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
python中self原理实例分析
2015/04/30 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
python匿名函数用法实例分析
2019/08/03 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
我的五年职业生涯规划
2014/01/23 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
交通事故和解协议书
2014/09/25 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
幼儿园辞职书
2015/02/26 职场文书
2015年实习单位评语
2015/03/25 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python