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 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
zen cart新进商品的随机排序修改方法
Sep 10 PHP
PHP通用检测函数集合
Feb 08 PHP
PHP 登录完成后如何跳转上一访问页面
Jan 14 PHP
php中require和require_once的区别说明
Feb 27 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
Nov 24 PHP
php curl发送请求实例方法
Aug 01 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/13 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
红黑树的插入详解及Javascript实现方法示例
2018/03/26 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
python的dict,set,list,tuple应用详解
2014/07/24 Python
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
Python模块搜索路径代码详解
2018/01/29 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
党校党性分析材料
2014/12/19 职场文书
护士自我推荐信范文
2015/03/24 职场文书
小学中队活动总结
2015/05/11 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python