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 include,include_once,require,require_once
Sep 05 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
Smarty Foreach 使用说明
Mar 23 PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
php下拉选项的批量操作的实现代码
Oct 14 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
php导入模块文件分享
Mar 17 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
php UNIX时间戳用法详解
Feb 16 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
php下网站防IP攻击代码,超级实用
2010/10/24 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
详解vue配置后台接口方式
2019/03/29 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
详解Python编程中基本的数学计算使用
2016/02/04 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
python输入多行字符串的方法总结
2019/07/02 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Python数据可视化图实现过程详解
2020/06/12 Python
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
化学教师教学反思
2014/01/17 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android