一括表示 件名: Re: 緯度経度  方位と距離を表示する
記事No 957
投稿日 2021/11/07(Sun) 17:45:58
投稿者 JG1MOU浜田
// Pascal言語をC言語に直しました。
// Delphiでは、Double型よりも大きいExtended型を使っています。
double Ido2Radian(const int i1, i2, i3)

{// 緯度・経度をラジアン値に変換する
// i1=時、i2=分、i3=秒
double Ido1;
Ido1 = i2 * 60 + (i3 & $7f); // Max 3599, 3600秒=1度
Ido1 = Ido1 / 3600.0; // 分・秒を 0.nnnn度に直す
Ido1 = Ido1 + i1;
Ido1 = DegToRad(Ido1); // ラジアンを返す
if (i3 & $80) // 最上位ビットが立っていれば
return -Ido1; // 南緯・西経
else
return Ido1; // 東経・北緯}


int Houi_Kyori(const double Ido1, Kdo1, Ido2, Kdo2, char *sbuff)

{// Ido1~Kdo2は、Ido2Radian()で求めた値を渡す
int FAngle;
double al, al2;
double U, V, W, U2, V2, W2, DI;
// Ido1, Kdo1 から Ido2, Kdo2 への距離、方位角を求める
if (Ido1==Ido2 && Kdo1==Kdo2)
return -1; // 同じ位置です

U = cos(Ido2) * cos(Kdo2);
V = cos(Ido2) * sin(Kdo2);
W = sin(Ido2);

U2 = U * sin(Ido1) * cos(Kdo1) +
V * sin(Ido1) * sin(Kdo1) - W * cos(Ido1);
V2 = -U * sin(Kdo1) + V * cos(Kdo1);
W2 = U * cos(Ido1) * cos(Kdo1) +
V * cos(Ido1) * sin(Kdo1) + W * sin(Ido1);

DI = 63700.0 * ( Pi / 2 - ArcSin( W2 )); // 距離を求める
DI = RoundOff(DI) / 10.0; // 小数点第2位を四捨五入する

Al = ArcTan( V2 / U2 );
if (U2 >= 0.0)
Al2 = Al;
else
{ if (Al <= 0.0)
Al2 = Al + Pi;
else
Al2 = Al - Pi;
}
FAngle = Trunc(RadToDeg(Pi - Al2)); // 方位角を求める
if (DI >= 100.0) then // 三桁以上の場合
wsprintf(sbuff, "方位:%d度%5dkm", FAngle, RoundOff(DI));
else
wsprintf(sbuff, "方位:%d度 %.1fkm", FAngle, DI);
return FAngle; // 方位を返す}
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
関連一覧ツリー 一括表示 をクリックするとツリーを一括表示します)
一括表示 緯度経度  方位と距離を表示する - JA2BQX 太田 11/05-16:20 No.947
  Re: 緯度経度  方位と距離を表示する - JG1MOU浜田 11/05-20:26 No.948
  Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/05-20:50 No.949
    Re: 緯度経度  方位と距離を表示する - JA9AOB 銅子 11/06-10:48 No.950
      Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/06-11:46 No.951
      Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/06-19:02 No.953
        Re: 緯度経度  方位と距離を表示する - JG1MOU浜田 11/06-22:09 No.954
        Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/07-07:28 No.955
          Re: 緯度経度  方位と距離を表示する - JG1MOU浜田 11/07-17:45 No.957
            Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/07-18:13 No.961
            Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/07-19:43 No.962
              Re: 緯度経度  方位と距離を表示する - JG1MOU浜田 11/07-20:00 No.963
                Re: 緯度経度  方位と距離を表示する - JG1MOU浜田 11/07-21:10 No.965
                  Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/08-08:24 No.967
                    Re: 緯度経度  方位と距離を表示する - JG1MOU浜田 11/08-09:32 No.970
                      Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/08-10:13 No.971
        Re: 緯度経度  方位と距離を表示する - JA9AOB 銅子 11/07-17:17 No.956
          Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/07-18:03 No.959
            Re: 緯度経度  方位と距離を表示する - JA9AOB 銅子 11/08-07:54 No.966
              Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/08-08:28 No.968
                Re: 緯度経度  方位と距離を表示する - JA9AOB 銅子 11/08-09:12 No.969
                  Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/08-11:56 No.974
                    Re: 緯度経度  方位と距離を表示する - JG1MOU浜田 11/08-12:14 No.975
  Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/06-18:56 No.952
    Re: 緯度経度  方位と距離を表示する - JG1MOU浜田 11/07-17:53 No.958
      Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/07-18:11 No.960
        Re: 緯度経度  方位と距離を表示する - JG1MOU浜田 11/08-10:49 No.972
          Re: 緯度経度  方位と距離を表示する - JA2BQX 太田 11/08-11:41 No.973