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中数据的批量导入(csv文件)
Oct 09 PHP
php 获取可变函数参数的函数
Aug 26 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
PHP 学习路线与时间表
Feb 21 PHP
memcached 和 mysql 主从环境下php开发代码详解
May 16 PHP
php重定向的三种方法分享
Feb 22 PHP
完整删除ecshop中获取店铺信息的API
Dec 24 PHP
使用PHP similar text计算两个字符串相似度
Nov 06 PHP
php编程每天必学之验证码
Mar 03 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
PHP微信公众号开发之微信红包实现方法分析
Jul 14 PHP
为何说PHP引用是个坑,要慎用
Apr 02 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
List Installed Software Features
2007/06/11 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
限制文本框输入N个字符的js代码
2010/05/13 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
python如何保存文本文件
2020/06/07 Python
2014年机关植树节活动方案
2014/02/27 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
详解python字符串驻留技术
2021/05/21 Python