<?phpclass Distance
{const  EARTH_RADIUS_AVG = (6378137 + 6356752.3142) / 2;//地球半径 平均值,单位米/*** 参数:纬度1,经度1、纬度2.经度2、* 使用Haversine公式,计算2个经纬度之间的距离。** @param $lat1 纬度1* @param $lon1 经度1* @param $lat2 纬度2* @param $lon2 经度2* @return float|int 返回距离,单位:米*/public static function GetDistance( $lat1,  $lon1,  $lat2,  $lon2){//经纬度转换成弧度$lat1 = self::GetRadians($lat1);$lon1 = self::GetRadians($lon1);$lat2 = self::GetRadians($lat2);$lon2 = self::GetRadians($lon2);//差值$vLon = Abs($lon1 - $lon2);$vLat = Abs($lat1 - $lat2);$h = self::HaverSin($vLat) + Cos($lat1) * Cos($lat2) * self::HaverSin($vLon);$distance = 2 * self::EARTH_RADIUS_AVG * Asin(Sqrt($h));return $distance;}/*** 将角度换算为弧度** @param $deg 角度* @return float 弧度*/public static function  GetRadians( $deg){return PI() * $deg / 180.0;}/*** 半正矢公式(Haversine公式)** @param $theta* @return float|int*/public static function HaverSin($theta){$v = Sin($theta / 2);return $v * $v;}}$lat1 =39.929377;//纬度1
$lon1=116.408149;//经度1
$lat2=39.920054;//纬度2
$lon2=116.408545;//经度2
echo (new Distance())::GetDistance($lat1,$lon1,$lat2,$lon2); //输出:1036.6413225215(米);如果换算成千米,保留小数点后三位,结果为1.037(千米)

根据在线计算距离工具所得结果和以上代码执行结果一致, 在线计算距离工具计算结果如下图所示:

在线计算方位角网址:方位角在线计算--方位角-距离在线计算器

php计算两个坐标(经度,纬度)之间距离相关推荐

  1. 函数:GetDistance,计算两个经度纬度之间距离

    oracle函数,可以很快捷查出经纬度之间距离 oracle函数代码: CREATE OR REPLACE FUNCTION GetDistance(LngBegin number,LatBegin ...

  2. matlab利用经纬度计算距离,MATLAB函数可计算两个坐标(纬度和经度)之间的距离...

    How can I calculate distance between two world map coordinates (latitude and longitude) using MATLAB ...

  3. 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)

    根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离) 球面上任意两点之间的距离计算公式可以参考维基百科上的下述文章. Great-circle distance Haversine ...

  4. 计算两个坐标点之间的点的坐标

    <!DOCTYPE html> <html><head><meta charset="utf-8" /><title>计 ...

  5. mysql gps数据查询_Mysql数据库中计算两GPS坐标的距离

    Mysql数据库中计算两GPS坐标的距离有两种方式: 1.直接使用SQL语句:#lat为纬度, lng为经度, 一定不要弄错 declare @lng1 float; declare @lat1 fl ...

  6. java版谷歌地图计算两经纬度坐标点的距离

    球面上两点间大圆劣弧的距离 public class GoogleMapHelper {private static double EARTH_RADIUS = 6378.137; //地球半径//将 ...

  7. 地理计算 | 计算两个坐标点射线的交点(前方交会)

    1 前言 前方交会--- 又称为测角交会,是指从相邻两个已知点向待定点观测两个水平角,用以计算待定点的坐标. 如图所示,点 A.B 的坐标已知. 通过观测角 A 和角 B 求出点 P 坐标的定位方法被 ...

  8. 经纬度计算距离html,js版谷歌地图计算两经纬度坐标点的距离

    球面上两点间大圆劣弧的距离html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Android 高德地图根据地址获取经纬度,计算两个坐标的距离

    1.到高德开放平台申请,获取key 高德开放平台:https://lbs.amap.com/ 2.下载高德定位及地址搜索SDK:https://download.csdn.net/download/m ...

  10. pandas中使用rolling.corr函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations)、例如,计算两种商品销售额之间的3个月的滚动相关性

    pandas中使用rolling.corr函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations).例如,计算两种商品销售额之间的3个月的滚动相关性 目录

最新文章

  1. “该文件包含不能在当前代码页(936)中表示的字符,请将该文件保存为 Unicode 格式以防止数据丢失”
  2. 在5分钟内搭建企业内部私有npm仓库
  3. Android 完全退出程序,以及再按一次返回键退出程序
  4. OpenCV学习笔记】二十七、轮廓特征属性及应用(四)——正外接矩形
  5. JavaEE大型项目实战视频教程
  6. linux 系统tty、pty和pts 的概念及区别
  7. iOS中使用自定义字体, 动态下载字体
  8. 运维--域服务器--搭建
  9. 关于python中的复数的虚部可以j或i_Python 中的复数问题
  10. android点歌系统代码
  11. eel+python 开发html5跨平台桌面应用1
  12. 查询员工的薪水涨幅情况
  13. C语言——医院挂号系统(队列)
  14. fortran数组下标、行号、continue
  15. BZOJ3238 后缀自动机+推公式
  16. python写梦幻西游脚本精灵_python写的梦幻手游辅助工具,非外 挂
  17. 2012 苏州瑞晟微电子 面试(共两轮,每次近一个半小时)
  18. C语言用字符串sex储存,《C语言》上机实验题及参考答案2
  19. [转载]C罗皇马蜜月结束 “独性”不改或遭弃
  20. 无穷无尽、无穷无尽、无穷无尽的想象力!

热门文章

  1. Java.lang.RuntimeException: Parcel: unable to marshal value
  2. android三星定位闪退,三星手机闪退问题7种修复方法
  3. 竞品分析报告-网易蜗牛读书
  4. apex 安装/使用 记录
  5. 常用Linux命令、文件操作解压缩相关、Linux命令大全、测试查询
  6. 如何先梳理业务逻辑再写代码
  7. Eclipse中出现-访问限制由于对必需的库XX具有一定限制,因此无法访问类型
  8. 4763: 雪辉[点分治+可持久化分块]
  9. 1-14 Burpsuite Repeater介绍
  10. 【开关电源】BUCK和BOOST变换器电感的设计