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 相关文章推荐
PHPMailer安装方法及简单实例
Nov 25 PHP
PHP 危险函数全解析
Sep 09 PHP
hadoop中一些常用的命令介绍
Jun 19 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
php集成环境xampp中apache无法启动问题解决方案
Nov 18 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
php获取微信openid方法总结
Oct 10 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 30 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 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 实现类似js中alert() 提示框
2015/03/18 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
jquery 笔记 事件
2011/11/02 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
应届生学校辅导员求职信
2013/11/07 职场文书
教师年度考核自我鉴定
2014/01/19 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
预备党员转正材料
2014/12/19 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android