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 相关文章推荐
桌面中心(二)数据库写入
Oct 09 PHP
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
php 模拟POST|GET操作实现代码
Jul 20 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
PHP5各个版本的新功能和新特性总结
Mar 16 PHP
php计算两个日期时间差(返回年、月、日)
Jun 19 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
May 18 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 09 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下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
PHP详解ASCII码对照表与字符转换
2011/12/05 PHP
php实现简单洗牌算法
2013/06/18 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
Javascript中的相等与不等运算
2010/04/25 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
python 自动重连wifi windows的方法
2018/12/18 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
硕士研究生自我鉴定
2013/11/08 职场文书
公开服务承诺制度
2014/03/26 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
公司老总年会致辞
2015/07/30 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python
Java基础之this关键字的使用
2021/06/30 Java/Android