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 相关文章推荐
Oracle Faq(Oracle的版本)
Oct 09 PHP
PHP入门学习的几个不错的实例代码
Jul 13 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 PHP
浅析PHP Socket技术
Aug 02 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
Apr 18 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
PHP实现的限制IP投票程序IP来源分析
May 04 PHP
Laravel4中的Validator验证扩展用法详解
Jul 26 PHP
php curl 模拟登录并获取数据实例详解
Dec 22 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使用者状态管理功能的应用
2006/10/09 PHP
PHP自定义函数收代码
2010/08/01 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
jQuery拖拽 & 弹出层 介绍与示例
2013/12/27 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
自我评价怎么写好呢?
2013/12/05 职场文书
证婚人经典证婚词
2014/01/09 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers
JS实现简单的九宫格抽奖
2022/06/28 Javascript