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截取中文字符串的问题
Jul 12 PHP
实时抓取YAHOO股票报价的代码
Oct 09 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
Apr 18 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
input file获得文件根目录简单实现
Apr 26 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
Jun 12 PHP
php在线解压ZIP文件的方法
Dec 30 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
PHP邮箱验证示例教程
Jun 01 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 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
农民和部队如何穿矿
2020/03/04 星际争霸
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
Python深入06——python的内存管理详解
2016/12/07 Python
浅谈Python中的bs4基础
2018/10/21 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
会计毕业生自我鉴定
2013/11/04 职场文书
英语自荐信范文
2013/12/11 职场文书
英语自我评价范文
2014/01/24 职场文书
个人安全生产承诺书
2014/05/22 职场文书
求职意向书
2014/07/29 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
详解Redis基本命令与使用场景
2021/06/01 Redis
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS