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 相关文章推荐
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
php 不使用js实现页面跳转
Feb 11 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
Jun 04 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
php实现复制移动文件的方法
Jul 29 PHP
php函数mkdir实现递归创建层级目录
Oct 27 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 PHP
PHP常用的类封装小结【4个工具类】
Jun 28 PHP
php常用的工具开发整理
Sep 26 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
php下删除字符串中HTML标签的函数
2008/08/27 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
PHP语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
php curl发送请求实例方法
2019/08/01 PHP
jQuery ready函数滥用分析
2011/02/16 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
javascript中的面向对象
2017/03/30 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
python else语句在循环中的运用详解
2020/07/06 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
Python模块常用四种安装方式
2020/10/20 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
航海技术专业毕业生求职信
2014/04/06 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js