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 相关文章推荐
利用PHP动态生成VRML网页
Oct 09 PHP
PHP中for循环语句的几种变型
Nov 26 PHP
PHP音乐采集(部分代码)
Feb 14 PHP
php 定义404页面的实现代码
Nov 19 PHP
PHP制作图形验证码代码分享
Oct 23 PHP
ThinkPHP模板输出display用法分析
Nov 26 PHP
php操作redis缓存方法分享
Jun 03 PHP
php生成二维码
Aug 10 PHP
php 解决substr()截取中文字符乱码问题
Jul 18 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
PHP+MySQL实现在线测试答题实例
Jan 02 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
提升PHP执行速度全攻略(上)
2006/10/09 PHP
杏林同学录(八)
2006/10/09 PHP
php在线打包程序源码
2008/07/27 PHP
获取远程文件大小的php函数
2010/01/11 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
js将json格式内容转换成对象的方法
2013/11/01 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
24式加速你的Python(小结)
2019/06/13 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
python 字符串常用方法汇总详解
2019/09/16 Python
Python input函数使用实例解析
2019/11/22 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
python实现数字炸弹游戏程序
2020/07/17 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
DBA的职责都有哪些
2012/05/16 面试题
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
财务会计专业毕业生自荐信
2013/10/19 职场文书
房产销售经理职责
2013/12/20 职场文书
表决心的诗句大全
2014/03/11 职场文书
法人委托书
2014/07/31 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
用JS写一个发布订阅模式
2021/11/07 Javascript
Python实现制作销售数据可视化看板详解
2021/11/27 Python