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 相关文章推荐
Win2000+Apache+MySql+PHP4+PERL安装使用小结
Oct 09 PHP
php木马攻击防御之道
Mar 24 PHP
PHP里的中文变量说明
Jul 23 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
php Ubb代码编辑器函数代码
Jul 05 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
PHP简单实现断点续传下载的方法
Sep 25 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 PHP
详解PHP队列的实现
Mar 14 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
PHP预定义接口――Iterator用法示例
Jun 05 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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
PHP验证码类ValidateCode解析
2017/01/07 PHP
laravel请求参数校验方法
2019/10/10 PHP
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
Python入门篇之字典
2014/10/17 Python
Python实现list反转实例汇总
2014/11/11 Python
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
自荐信包含哪些内容
2013/10/30 职场文书
大一自我鉴定范文
2013/12/27 职场文书
大学社团活动策划书
2014/01/26 职场文书
现场施工员岗位职责
2014/03/10 职场文书
小学庆六一活动总结
2014/08/28 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python
Vue h函数的使用详解
2022/02/18 Vue.js
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python