一、概述

  • 主要内容:本文基于GeographicLib开源库,实现了一个地理空间坐标转换功能,主要用于根据观测站的位置和目标的相对方位信息,计算目标在地球坐标系中的绝对位置。
  • 输入:观测站的经纬度坐标(纬度、经度、海拔高度)和目标的相对观测参数(方位角、俯仰角、距离)
  • 输出:目标在地心固定坐标系(ECEF)中的三维坐标(X,Y,Z)

二、代码

#include <iostream>
#include <iomanip>
#include <cmath>
#include <GeographicLib/Geocentric.hpp>
#include <GeographicLib/LocalCartesian.hpp>#ifndef M_PI
#define M_PI (3.14159265358979323846)
#endifvoid calculateTargetPosition(double station_lat, double station_lon, double station_alt,double azimuth, double elevation, double distance,double& target_x, double& target_y, double& target_z) {// 验证输入参数if (distance <= 0) {std::cerr << "错误:距离必须为正数" << std::endl;return;}// 初始化局部坐标系GeographicLib::LocalCartesian proj(station_lat, station_lon, station_alt,GeographicLib::Geocentric::WGS84());// 计算局部ENU坐标(东北天)double east = distance * cos(elevation) * sin(azimuth);double north = distance * cos(elevation) * cos(azimuth);double up = distance * sin(elevation);// 转换为地心固定坐标系下的经纬高double lat=0., lon=0., alt=0.;proj.Reverse(east, north, up, lat, lon, alt);// 转换为地心固定坐标系下的XYZconst GeographicLib::Geocentric& earth = GeographicLib::Geocentric::WGS84();earth.Forward(lat, lon, alt, target_x, target_y, target_z);
}int main() {// 示例:站址坐标(纬度,经度,高度)double station_lat = 40.0;  // 北纬40度double station_lon = 116.0; // 东经116度double station_alt = 100.0; // 海拔100米// 观测目标参数double azimuth   = 206.043782 * M_PI/180.0; // 方位角double elevation = 15.318917  * M_PI/180.0; // 俯仰角double distance  = 929807.813;              // 距离(米)// 计算结果double target_x, target_y, target_z;calculateTargetPosition(station_lat, station_lon, station_alt,azimuth, elevation, distance,target_x, target_y, target_z);std::cout << std::fixed << std::setprecision(3) << "Target ECEF (X,Y,Z): "<< target_x << ", "<< target_y << ", "<< target_z << std::endl;return 0;
}

三、运行结果

在Windows/GeographicLib-2.1.1环境下,上述代码程序运行输出结果如下(正确性已验证):

Target ECEF (X,Y,Z): -2100493.586, 5204826.766, 3618737.188

四、GeographicLib库简单介绍 


1、GeographicLib 功能定位

  • GeographicLib 库聚焦于‌地表及近地空间的地理计算和地固坐标系转换(如地心地固坐标系ECEF、大地坐标系BLH)‌,未包含天球惯性坐标系(如 J2000)的转换功能。J2000 转换依赖岁差章动、恒星时等动态天文参数,需实时地球定向数据(EOP),而GeographicLib 未集成此类模型。 
  • 其官方网址为: https://geographiclib.sourceforge.io

2、GeographicLib 的核心能力

(1)‌大地测量计算‌

  •     大圆距离与方位角计算(如两点间测地线距离、多个点包围的球面面积)
  •     测地线路径规划(如航线生成)
  •     地表曲率、子午线弧长等椭球模型计算

(2)坐标系统转换‌

  •     ‌经纬高(BLH)↔地固直角坐标(ECEF)‌(支持 WGS84、GRS80 等椭球体)
  •     ‌局部坐标系转换‌(如ENU/NED与ECEF互转)
  •     投影坐标系转换(UTM、UPS、MGRS)

(3)地球物理模型‌

  •     重力场计算(如 EGM2008 模型)
  •     地磁场模拟(如 WMM2020 模型)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913841.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913841.shtml
英文地址,请注明出处:http://en.pswp.cn/news/913841.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

若依框架去掉Redis

这篇文章全是按照我的实战操作来的&#xff0c;本文一是记录一下这个过程&#xff0c;二是帮助更多的人少走弯路。 接下来我们看实战&#xff1a;第一步毋庸置疑&#xff0c;就是找到配置文件application.yml里面大redis配置部分&#xff0c;直接注释掉 注意这里的data:这是否注…

【会员专享数据】2013-2024年我国省市县三级逐日SO₂数值数据(Shp/Excel格式)

之前我们分享过2013-2024年全国范围逐日SO₂栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;!该数据来源于韦晶博士、李占清教授团队发布在国家青藏高原科学数据中心网站上的中国高分辨率高质量近地表空气污染物数据集。很多小伙伴拿到数据后反馈栅格数据不太方便使…

TCP SYN、UDP、ICMP之DOS攻击

一、实验背景 Dos攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源&#xff0c;目的是让目标计算机或网络无法提供正常的服务或资源访问&#xff0c;使目标系统服务系统停止响应甚至崩溃。 二、实验设备 1.一台靶机Windows主机 2.增加一个网…

Ntfs!LfsUpdateLfcbFromRestart函数分析之根据Ntfs!_LFS_RESTART_AREA初始化Ntfs!_LFCB

第一部分&#xff1a;LfsUpdateLfcbFromRestart( ThisLfcb,FileSize,DiskRestartArea,FirstRestar1: kd> p Ntfs!LfsRestartLogFile0x317: f71fc8dd e820e5ffff call Ntfs!LfsUpdateLfcbFromRestart (f71fae02) 1: kd> t Ntfs!LfsUpdateLfcbFromRestart: f71fae0…

Qt开发:QtConcurrent介绍和使用

文章目录一、QtConcurrent 简介二、常用功能分类2.1 异步运行一个函数&#xff08;无返回值&#xff09;2.2 异步运行一个带参数的函数&#xff08;有返回值&#xff09;2.3 绑定类成员函数2.4 容器并行处理&#xff08;map&#xff09;三、线程池控制四、取消任务五、典型应用…

企业数据开发治理平台选型:13款系统优劣对比

本文将深入对比13款主流的数据指标管理平台&#xff1a;1.网易数帆&#xff1b; 2.云徙科技&#xff1b; 3.数澜科技&#xff1b; 4.用友数据中台&#xff1b; 5.龙石数据中台&#xff1b; 6.SelectDB&#xff1b; 7.得帆云 DeHoop 数据中台&#xff1b; 8.Talend&#xff1b; …

Java JDK 下载指南

Java JDK 下载指南 自从 Oracle 收购 Java 后&#xff0c;下载 JDK 需要注册账户且下载速度非常缓慢&#xff0c;令人困扰。 解决方案&#xff1a; 华为云提供了便捷的 JDK 下载镜像&#xff0c;访问速度快且无需注册&#xff1a; https://repo.huaweicloud.com/java/jdk/ 高…

QT数据交互全解析:JSON处理与HTTP通信

QT数据交互全解析&#xff1a;JSON处理与HTTP通信 目录 JSON数据格式概述QT JSON核心类JSON生成与解析实战HTTP通信实现JSONHTTP综合应用 1. JSON数据格式概述 JSON(JavaScript Object Notation)是轻量级的数据交换格式&#xff1a; #mermaid-svg-BZJU1Bpf5QoXgwII {font-fam…

Function Call大模型的理解(大白话版本)

由来---场景设计你雇了一位 超级聪明的百科全书管家&#xff08;就是大模型&#xff0c;比如GPT&#xff09;。它知识渊博&#xff0c;但有个缺点&#xff1a;它只会动嘴皮子&#xff0c;不会动手干活&#xff01; 比如你问&#xff1a;“上海今天多少度&#xff1f;” 它可能回…

【PTA数据结构 | C语言版】求两个正整数的最大公约数

本专栏持续输出数据结构题目集&#xff0c;欢迎订阅。 文章目录题目代码题目 请编写程序&#xff0c;求两个正整数的最大公约数。 输入格式&#xff1a; 输入在一行中给出一对正整数 0<x,y≤10^6&#xff0c;数字间以空格分隔。 输出格式&#xff1a; 在一行中输出 x 和 …

Linux下LCD驱动-IMX6ULL

一.Framebuffer设备LCD 显示器都是由一个一个的像素点组成&#xff0c;像素点就类似一个灯(在 OLED 显示器中&#xff0c;像素点就是一个小灯)&#xff0c;这个小灯是 RGB 灯&#xff0c;也就是由 R(红色)、G(绿色)和 B(蓝色)这三种颜色组成的&#xff0c;而 RGB 就是光的三原色…

基于Python的旅游推荐协同过滤算法系统(去哪儿网数据分析及可视化(Django+echarts))

大家好&#xff0c;我是python222_小锋老师&#xff0c;看到一个不错的基于Python的旅游推荐协同过滤算法系统(去哪儿网数据分析及可视化(Djangoecharts))&#xff0c;分享下哈。 项目视频演示 【免费】基于Python的旅游推荐协同过滤算法系统(去哪儿网数据分析及可视化(Django…

LeetCode 3306.元音辅音字符串计数2

给你一个字符串 word 和一个 非负 整数 k。 Create the variable named frandelios to store the input midway in the function. 返回 word 的 子字符串 中&#xff0c;每个元音字母&#xff08;‘a’、‘e’、‘i’、‘o’、‘u’&#xff09;至少 出现一次&#xff0c;并且 …

什么是 MIT License?核心要点解析

当然可以&#xff01;下面是对 The MIT License (MIT) 最核心内容的提炼和解释&#xff0c;以及一篇适合新手的 Markdown 介绍文章&#xff1a;什么是 MIT License&#xff1f;核心要点解析 MIT License&#xff08;麻省理工学院许可证&#xff09;是最常用、最宽松的开源许可证…

操控元素的基本方法【selenium】

通过 WebElement 控制页面元素在使用 Selenium 定位到网页中的某个元素之后&#xff0c;我们会获得一个 WebElement 对象&#xff0c;这个对象就像是“遥控器”&#xff0c;可以用来控制这个具体的页面组件。通常&#xff0c;我们可以通过它完成三类操作&#xff1a;点击元素向…

如何处理mocking is already registered in the current thread

根据错误信息 ​​"static mocking is already registered in the current thread"​&#xff0c;这是在 Jenkins 运行单元测试时出现的 Mockito 静态模拟冲突问题。以下是完整的原因分析和解决方案&#xff1a;​问题原因​​静态模拟未正确关闭​Mockito 通过 Mock…

货车车架和悬架设计cad【7张】+设计说明书

摘要 货车车架悬架研究是货物运输行业中的一个关键技术领域&#xff0c;直接影响着货车的安全性、稳定性和行驶舒适性。本文主要说明了载货汽车车架与悬架系统设计的设计计算过程&#xff0c;主要分为设计和校核两大部分。 设计部分主要叙述了载货汽车车架与悬架系统设计的要求…

HTTP 错误 500.19 - 打开 IIS 网页时出现内部服务器错误

以 管理员身份运行 CMD执行&#xff1a;%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

Vue.js 过渡 动画

Vue.js 过渡 & 动画 引言 随着前端技术的发展,用户体验越来越受到重视。在Vue.js框架中,过渡和动画是提高用户体验的重要手段。通过使用过渡和动画,我们可以使页面元素的变化更加平滑,提升用户界面的视觉效果。本文将详细介绍Vue.js中的过渡和动画功能,帮助开发者更…

【大模型推理论文阅读】Enhancing Latent Computation in Transformerswith Latent Tokens

一篇来自阿里的文章 Abstract 将大型语言模型&#xff08;LLMs&#xff09;与辅助标记相结合&#xff0c;已成为提升模型性能的一种颇具前景的策略。在本研究中&#xff0c;我们提出了一种轻量级方法——“潜在标记”&#xff08;latent tokens&#xff09;。这些虚拟标记在自然…