在天空图上显示gps卫星位置



我已经解析了星历数据,以便获得在我当前位置上方可见的卫星的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坐标中,然后定义"东"、"北"one_answers"上"。基向量对于特定地点的坐标系统在那一刻(占地球的,然后将卫星位置转换为视角(方位角和

从观测地点看到的仰角(或赤经和赤纬)。

最新更新