1. ホーム
  2. iphone

[解決済み] クロストラック誤差の計算方法(GPS/コアロケーション)

2022-02-07 04:19:07

質問

Cross-Track Error"の判定方法をご存知の方はいらっしゃいますか?

知らない人のために説明すると、あなたは点 "A" から点 "B" までの線に沿って運転しています。走行中、その線から外れたとき、現在位置から線までの距離がクロストラックエラーです。

3点の緯度と経度を使った基本的な幾何学で動作する簡単なアルゴリズムができました。問題は、大円の計算が考慮されていないことです(つまり、実際のメートル/度の経度は緯度によって異なり、緯度のそれと同じではありません)。

つまり--これを求めるための"great circle"の公式をご存知でしたら教えていただきたいのですが--直交幾何学的な問題ではありません。

解決方法は?

これは、受理された回答へのリンクからこのテキストです - それが死んだら。

新しい情報です。大円の経路からの点の距離について聞かれることがあります(交差軌道誤差と呼ばれることもあります)。

の式で表されます。 dxt = asin( sin(δ13) ⋅ sin(θ13−θ12) ) ⋅ R

のところです。

  • δ13 は、始点から3点目までの(角度)距離です。

  • θ13 は、始点から3点目までの(初期)方位です。

  • θ12 は、始点から終点までの(初期)方位です。

  • R は地球の半径

JavaScriptです。

var δ13 = d13 / R;
var dXt = Math.asin(Math.sin(δ13)*Math.sin(θ13-θ12)) * R;

ここで、大円の経路は始点と終点で特定される。どのような初期データから作業するかによって、上記の公式を使用して関連する距離と方位を得ることができる。の符号は dxt は、3点目がどちら側にあるかを示しています。

スタート地点から3点目までの経路上の最寄りの地点までの経路距離は

計算式 dat = acos( cos(δ13) / cos(δxt) ) ⋅ R

のところです。

  • δ13 は、始点から3点目までの(角度)距離です。
  • δxt は(角度)クロストラック距離
  • R は地球の半径

JavaScriptです。

var dAt = Math.acos(Math.cos(δ13)/Math.cos(dXt/R)) * R;