現在の場所の上に見える衛星の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);
}