PHP根据两点间的经纬度计算距离


Posted in PHP onOctober 31, 2014

这是一个不错的示例,直接贴代码,首先要知道纬度值、经度值

/** 
* @desc 根据两点间的经纬度计算距离 
* @param float $lat 纬度值 
* @param float $lng 经度值 
*/ 
function getDistance($lat1, $lng1, $lat2, $lng2) 
{ 
$earthRadius = 6367000; //approximate radius of earth in meters 

/* 
Convert these degrees to radians 
to work with the formula 
*/ 

$lat1 = ($lat1 * pi() ) / 180; 
$lng1 = ($lng1 * pi() ) / 180; 

$lat2 = ($lat2 * pi() ) / 180; 
$lng2 = ($lng2 * pi() ) / 180; 

/* 
Using the 
Haversine formula 

http://en.wikipedia.org/wiki/Haversine_formula 

calculate the distance 
*/ 

$calcLongitude = $lng2 - $lng1; 
$calcLatitude = $lat2 - $lat1; 
$stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2); 
$stepTwo = 2 * asin(min(1, sqrt($stepOne))); 
$calculatedDistance = $earthRadius * $stepTwo; 

return round($calculatedDistance); 
}
PHP 相关文章推荐
屏蔽浏览器缓存另类方法
Oct 09 PHP
php 之 没有mysql支持时的替代方案
Oct 09 PHP
php日历[测试通过]
Mar 27 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 PHP
zend框架实现支持sql server的操作方法
Dec 08 PHP
php中str_pad()函数用法分析
Mar 28 PHP
php对象工厂类完整示例
Aug 09 PHP
PHP连续签到功能实现方法详解
Dec 04 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 #PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 #PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 #PHP
ThinkPHP控制器间实现相互调用的方法
Oct 31 #PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 #PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 #PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 #PHP
You might like
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
JQuery中Ajax的操作完整例子
2017/03/07 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python-嵌套列表list的全面解析
2016/06/08 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
python使用turtle库绘制时钟
2020/03/25 Python
Python当中的array数组对象实例详解
2019/06/12 Python
Python中内建模块collections如何使用
2020/05/27 Python
Python类super()及私有属性原理解析
2020/06/15 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
美国在线宠物商店:Chewy
2019/01/12 全球购物
软件测试工程师笔试题带答案
2015/03/27 面试题
化验室技术员岗位职责
2013/12/24 职场文书
信用卡工资证明范本
2014/10/17 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js