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
PHPMailer安装方法及简单实例
Nov 25 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
PHP实现简单汉字验证码
Jul 28 PHP
php设计模式之单例模式代码
Jun 11 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
Laravel框架实现利用监听器进行sql语句记录功能
Jun 06 PHP
PHP进阶学习之Geo的地图定位算法详解
Jun 19 PHP
php校验公钥是否可用的实例方法
Sep 17 PHP
PHP实现获取文件mime类型多种方法解析
May 28 PHP
PHP基于ip2long实现IP转换整形
Dec 11 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 获取ip地址代码汇总
2015/07/05 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
jquery.validate分组验证代码
2011/03/17 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
用Python给文本创立向量空间模型的教程
2015/04/23 Python
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
浅析Python数据处理
2018/05/02 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
python实现飞机大战小游戏
2019/11/08 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
优秀员工自荐书
2013/12/19 职场文书
公司门卫管理制度
2014/02/01 职场文书
《手指教学》反思
2014/02/14 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
图解上海144收音机
2021/04/22 无线电
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android