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 smarty模版引擎中的缓存应用
Dec 11 PHP
php session_start()出错原因分析及解决方法
Oct 28 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
PHP微框架Dispatch简介
Jun 12 PHP
PHP和javascript常用正则表达式及用法实例
Jul 01 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
php使用ob_flush不能每隔一秒输出原理分析
Jun 02 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
php链式操作的实现方式分析
Aug 12 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
图片按比例缩放函数
2006/06/26 Javascript
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
JavaScript中的各种操作符使用总结
2016/05/26 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
Python操作MySQL数据库的方法
2018/06/20 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
写给老师的表扬信
2014/01/21 职场文书
全神贯注教学反思
2014/02/03 职场文书
2014年质检工作总结
2014/11/26 职场文书
2015年工会工作总结
2015/03/30 职场文书
教师节倡议书2015
2015/04/27 职场文书
Python的这些库,你知道多少?
2021/06/09 Python