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 相关文章推荐
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
PHP之预定义接口详解
Jul 29 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
Apr 26 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
Aug 15 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
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
解析php中curl_multi的应用
2013/07/17 PHP
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
一个简易时钟效果js实现代码
2020/03/25 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
js实现随机抽奖
2020/03/19 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
windows下python之mysqldb模块安装方法
2017/09/07 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
python装饰器深入学习
2018/04/06 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
Python对象属性自动更新操作示例
2018/06/15 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
普天C++笔试题
2016/03/20 面试题
医学实习生自我鉴定
2013/12/12 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书