在天空图上显示gps卫星位置
本文关键字:位置 gps 显示 天空 | 更新日期: 2023-09-27 18:06:51
我已经解析了星历数据,以便获得在我当前位置上方可见的卫星的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);
}
基本思想是计算给定位置的卫星和观测者的位置在ECI坐标中,然后定义"东"、"北"answers"上"。基向量对于特定地点的坐标系统在那一刻(占地球的,然后将卫星位置转换为视角(方位角和