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 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
Oct 22 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
Jul 18 PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
Linux操作系统安装LAMP环境
Jun 26 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
php新建文件的方法实例
Sep 26 PHP
详解使用php-cs-fixer格式化代码
Sep 16 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
Yii框架登录流程分析
2014/12/03 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
python 解析html之BeautifulSoup
2009/07/07 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
Django 静态文件配置过程详解
2019/07/23 Python
python多线程同步之文件读写控制
2021/02/25 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
教师竞聘演讲稿
2014/05/16 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
法定授权委托证明书
2014/09/27 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
阿甘正传观后感
2015/06/01 职场文书
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫