<?php
class Angle
{/*** @param $d 转化为弧度(rad)* @return float*/public function rad($d){return $d * PI() / 180.0;}/*** 求两经纬度方向角** @param lon1*            第一点的经度* @param lat1*            第一点的纬度* @param lon2*            第二点的经度* @param lat2*            第二点的纬度* @return 方位角,角度(单位:°)* */public function  GetAngle($lon1, $lat1, $lon2, $lat2) {$lat1 = $this->rad($lat1);$lat2 = $this->rad($lat2);$lon1 = $this->rad($lon1);$lon2 = $this->rad($lon2);$angle = sin($lat1) * sin($lat2) + cos($lat1)* cos($lat2) * cos($lon2 - $lon1);$angle = sqrt(1 - $angle * $angle);$angle = cos($lat2) * sin($lon2 - $lon1) / $angle;$angle = asin($angle) * 180 / PI();if (is_nan($angle)) {if ($lon1 < $lon2) {$angle = 90.0;} else {$angle = 270.0;}return $angle;}if (($lat1 < $lat2) && ($lon1 <= $lon2)) {//一象限$angle = $lon1 == $lon2 ? 0: $angle;} elseif (($lat1 >= $lat2) && ($lon1 < $lon2)) {//二象限$angle=180-$angle;} elseif (($lat1 > $lat2) && ($lon1 >= $lon2)) {//三象限$angle=abs($angle)+180;} else {//四象限$angle = $lat1 == $lat2 ? $angle : 360-abs($angle);}return $angle;}}//坐标点1
$lon1 = 116.538512;//经度
$lat1 = 39.997896;//纬度
//坐标点2
$lon2 = 116.530463;//经度
$lat2 = 39.986177;//纬度echo (new Angle())->GetAngle($lon1, $lat1, $lon2, $lat2);//207.75621111667

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

php计算两个坐标(经度,纬度)之间的方位角相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    R语言时间序列数据滚动相关性分析(Rolling correlations).R语言使用zoo包中的rollapply函数计算两个时间序列数据列之间的滚动相关性(Rolling correlation ...

最新文章

  1. DataList在无数据记录时显示类似GridView空模板(EmptyDataTemplate)
  2. git的常用功能(管理github仓库)
  3. oracle 01192,万分火急:ora-01503 ora-01192
  4. 数据太大导致oracle数据库连接关闭,ORACLE异常关闭后导致数据库报错无法连接问题解决办法-Oracle...
  5. PostgresException: 42883: function ifnull(integer, integer) does not exist
  6. Densenet论文解读 深度学习领域论文分析博主
  7. php 匹配标签内的文本内容 preg_match_all strip_tags
  8. 如何下载会议论文集?如何将整个网站的资源离线到本地?
  9. vbs编程中 on error resume next的意思
  10. java ppt转图片 失真_java转换ppt,ppt转成图片,获取备注,获取文本
  11. 全流程+讲解+避坑指南 第一次使用vulhub搭建漏洞环境
  12. 动画(重点)~~~~~
  13. EchartsY轴刻度自适应
  14. 好家伙!六成大学生认为自己毕业10年内会年入百万!看来是我格局小了。。...
  15. 全志H616安装Python
  16. 基于C语言设计的植物大战僵尸小游戏
  17. 1079 活字印刷
  18. 三维动画制作软件测试指标,三维动画设计师需要具备哪些条件
  19. VMware vSphere6.0 服务器虚拟化部署安装图解(转载火星小编)
  20. 肆拾肆- 微信小程序 canvas 解锁及弹簧物理效应动画

热门文章

  1. 个人永久性免费-Excel催化剂功能第60波-数据有效性验证增强版,补足Excel天生不足...
  2. 封装composer包包
  3. 抖音数字人主播app
  4. 论文解读:AdderSR Towards Energy Efficient Image Super-Reso
  5. Reso | php面试题(mysql基础)
  6. 给你的Pycharm装一个漂亮的“皮肤“
  7. 怎么加入到开源社区,开心做开源
  8. Excel if及ifs函数用法
  9. java 从已知日期计算干支纪日_根据公历日期计算当日干支(详解)
  10. 软考干货 | 备考进行ing!该怎么备考呢?