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 相关文章推荐
使用php4加速网络传输
Oct 09 PHP
php生成局部唯一识别码LUID的代码
Oct 06 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
使用CodeIgniter的类库做图片上传
Jun 12 PHP
php防止sql注入之过滤分页参数实例
Nov 03 PHP
php动态添加url查询参数的方法
Apr 14 PHP
Nginx环境下PHP flush失效的解决方法
Oct 19 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
Laravel 队列使用的实现
Jan 08 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 PHP
laravel框架中间件简单使用方法示例
Jan 25 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 写文本日志实现代码
2010/05/18 PHP
php cookie使用方法学习笔记分享
2013/11/07 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
jquery之empty()与remove()区别说明
2010/09/10 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
Python生成验证码实例
2014/08/21 Python
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
大数据分析用java还是Python
2020/07/06 Python
pandas针对excel处理的实现
2021/01/15 Python
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
安全检查验收制度
2014/01/12 职场文书
2016年公司新年寄语
2015/08/17 职场文书
我的收音机情缘
2022/04/05 无线电