gpt4 book ai didi

c# - 在 skyplot 上显示 gps 卫星位置

转载 作者:行者123 更新时间:2023-11-30 22:36:01 31 4
gpt4 key购买 nike

我已经解析了星历表数据,以便获得在我当前位置上方可见的卫星的 ECEF(或纬度/经度)位置。我很想在我的 C# 程序中的天空图中显示这些位置。
我在我的 GUI 中添加了一个图片框,并尝试缩放 x/y 值以显示,但我不相信正在显示的位置是相对于我当前位置的。
有没有人有关于如何执行此操作的任何示例或示例代码?
我在 C# winform 中执行此操作。

private const double CENTER = 110;    //center of drawing (pixels)
private double SCALE_FACTOR = 89.0 / 90.0; //pixels from 90deg to 0 on drawing
.
.
.
private void drawSatellitePos(int svPrn, double elevation, double azimuth) //radians
{
double r = 90.0 - ConvertRadiansToDeg(elevation);
double theta = 90.0 - ConvertRadiansToDeg(azimuth);
theta = ConvertDegToRadians(theta);

double xLocation = CENTER + SCALE_FACTOR * r * Math.Cos(theta);
double yLocation = CENTER + SCALE_FACTOR * r * Math.Sin(theta);

Console.WriteLine("{0}: x: {1} Y: {2}", svPrn, xLocation, yLocation);

Point point = new Point((int)xLocation, (int)yLocation);
}

最佳答案

celestrak.com 的 Kelso 拥有出色的 series of articles关于卫星跟踪和轨道坐标系。 This article解释如何将卫星位置转换为特定地点(地心)坐标。 (您可能需要将您的从 ECEF 坐标(纬度/经度,随地球旋转)到 ECI(惯性坐标,相对于星星固定)使用凯尔索公式。

基本思想是计算卫星和观察者在给定位置的位置在 ECI 坐标中的瞬间,然后定义“东”、“北”和“上”基向量在那一刻的特定站点坐标系(占地球的扁率),然后将卫星位置转换为视角(方位角和从观测点看到的海拔,或赤经和赤纬)。

关于c# - 在 skyplot 上显示 gps 卫星位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194202/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com