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 array_merge下进行数组合并的代码
Jul 22 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
php 中英文语言转换类代码
Aug 11 PHP
xml在joomla表单中的应用详解分享
Jul 19 PHP
php如何调用webservice应用介绍
Nov 24 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP实现动态创建XML文档的方法
Mar 30 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 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自定义加密与解密程序实例
2014/12/31 PHP
php计算函数执行时间的方法
2015/03/20 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
改写一个简单的菜单 弹性大小
2010/12/02 Javascript
jQuery的学习步骤
2011/02/23 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
js中作用域的实例解析
2017/03/16 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
Python中实现参数类型检查的简单方法
2015/04/21 Python
Ubuntu下安装PyV8
2016/03/13 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
分公司经理岗位职责
2013/11/11 职场文书
雷人标语集锦
2014/06/19 职场文书
要账委托书范本
2014/09/15 职场文书
暑假安全保证书
2015/02/28 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
Python中的嵌套循环详情
2022/03/23 Python