php两点地理坐标距离的计算方法


Posted in PHP onDecember 29, 2018

本文实例为大家分享了php计算两点地理坐标距离的具体代码,供大家参考,具体内容如下

功能:根据圆周率和地球半径系数与两点坐标的经纬度,计算两点之间的球面距离。

获取两点坐标距离:

<?php
/**
 * 计算两点地理坐标之间的距离
 * @param Decimal $longitude1 起点经度
 * @param Decimal $latitude1 起点纬度
 * @param Decimal $longitude2 终点经度 
 * @param Decimal $latitude2 终点纬度
 * @param Int   $unit    单位 1:米 2:公里
 * @param Int   $decimal  精度 保留小数位数
 * @return Decimal
 */
function getDistance($longitude1, $latitude1, $longitude2, $latitude2, $unit=2, $decimal=2){

  $EARTH_RADIUS = 6370.996; // 地球半径系数
  $PI = 3.1415926;

  $radLat1 = $latitude1 * $PI / 180.0;
  $radLat2 = $latitude2 * $PI / 180.0;

  $radLng1 = $longitude1 * $PI / 180.0;
  $radLng2 = $longitude2 * $PI /180.0;

  $a = $radLat1 - $radLat2;
  $b = $radLng1 - $radLng2;

  $distance = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1) * cos($radLat2) * pow(sin($b/2),2)));
  $distance = $distance * $EARTH_RADIUS * 1000;

  if($unit==2){
    $distance = $distance / 1000;
  }

  return round($distance, $decimal);

}

// 起点坐标
$longitude1 = 113.330405;
$latitude1 = 23.147255;

// 终点坐标
$longitude2 = 113.314271;
$latitude2 = 23.1323;

$distance = getDistance($longitude1, $latitude1, $longitude2, $latitude2, 1);
echo $distance.'m'; // 2342.38m

$distance = getDistance($longitude1, $latitude1, $longitude2, $latitude2, 2);
echo $distance.'km'; // 2.34km

?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
php中的时间显示
Jan 18 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
PHP类中Static方法效率测试代码
Oct 17 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
Nov 08 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
PHP6新特性分析
Mar 03 PHP
PHP PDOStatement::nextRowset讲解
Feb 01 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
Feb 12 PHP
PHP反射原理与用法深入分析
Sep 28 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 PHP
php如何计算两坐标点之间的距离
Dec 29 #PHP
PHP命名空间简单用法示例
Dec 28 #PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 #PHP
PHP面向对象程序设计继承用法简单示例
Dec 28 #PHP
PHP抽象类基本用法示例
Dec 28 #PHP
php PDO属性设置与操作方法分析
Dec 27 #PHP
php实现的PDO异常处理操作分析
Dec 27 #PHP
You might like
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
js 日期转换成中文格式的函数
2009/07/07 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
JS实现分页导航效果
2020/02/19 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
Python模拟登录12306的方法
2014/12/30 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
python在不同层级目录import模块的方法
2016/01/31 Python
python遍历目录的方法小结
2016/04/28 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
python读文件的步骤
2019/10/08 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
python 伯努利分布详解
2020/02/25 Python
详解python中的异常和文件读写
2021/01/03 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
电子商务专业应届毕业生求职信
2014/06/21 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL