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 相关文章推荐
Zend公司全球首推PHP认证
Oct 09 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
Oct 30 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
微信access_token的获取开发示例
Apr 16 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
php操纵mysqli数据库的实现方法
Sep 18 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 PHP
PHP观察者模式示例【Laravel框架中有用到】
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
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
joomla组件开发入门教程
2016/05/04 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
PHP实现简易图形计算器
2020/08/28 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
python 异常处理总结
2016/10/18 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
python中有函数重载吗
2020/05/28 Python
Ibatis如何使用动态表名
2015/07/12 面试题
幼儿园教师工作感言
2014/02/15 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
篝火晚会策划方案
2014/05/16 职场文书
家长评语怎么写
2014/12/30 职场文书
js Proxy的原理详解
2021/05/25 Javascript