緯度・経度の差分から移動距離を計算する方法(1)

こんばんは、デジタルイノ…Takum!です。
 GPSを使ったデータを扱うことが増え、ライドデータの分析に限らず、自分の現在地点から何km以内にある店はドコ? とか、現在地と目的地までの直線距離は何km? など、緯度・経度の情報から距離を求めたいニーズは今かなりあるようです。今日は、その緯度・経度の差から、その地点間の距離を「厳密に」ではなく、でも、誤差をできるだけ小さく求める方法について考えていきます。




1.もっとも簡単な例

手始めに、地球が完全な球体であると近似した場合を考えます。実際には地球は自転により両極を通る断面の半径は、赤道面の半径よりもずいぶん小さくなっています。極端に言えば「みかん」です。が、それを考えずに近似するモデルから考えます。球体の半径を、$E$としています。

1-1.緯度方向の移動

 緯度$\theta$ から、経度方向には全く動かずに、緯度$\gamma$移動した場合を考えます。



 この移動距離は、半径$E$の円の円周$2\pi E$の360分の$\gamma$ですから、
$$L_{lat}=2\pi E\cdot\frac{\gamma}{360}=\frac{\pi E\gamma}{180}\tag{1}$$
となります。

1-2.経度方向の移動

 緯度$\theta$、経度$\phi$ にある地点から、緯度方向には全く移動せずに、経度$\delta$移動した場合を考えます。

 この移動距離は、緯度$\theta$の面で球体を切断した切断面の円周になります。切断面$R$の半径は、$E\cos\theta$ですから、切断面の円周は$2\pi E \cos\theta$となり、その360分の$\delta$ですから、
$$L_{lng}=2\pi E\cos\theta\cdot\frac{\delta}{360}=\frac{\pi E \delta \cos\theta}{180}\tag{2}$$
となります。

1-3.緯度・経度方向の移動

  次は、1-1、1-2を組み合わせて、緯度$\theta$、経度$\phi$にある地点から、緯度方向に$\gamma$、経度方向に$\delta$移動した場合を考えてみます。


 図のように(楕円が平行に見えないのはご勘弁、、、)、はじめに経度方向に移動し、緯度方向に移動したと考えてみます。こうすることで、(2)の$L_{lng}$と、(1)の$L_{lat}$の作る直角三角形ができます。実際にはこの赤い線は球上にあるので、円弧になるわけですが、ここでは、緯度・経度の差分がそれぞれ十分に小さいと考えれば、三平方の定理によって、
$$L=\sqrt{L_{lng}^2+L_{lat}^2}=\frac{\pi E}{180}\sqrt{\delta^2\cdot\cos^2\theta+\gamma^2}\tag{3}$$
となりました。

 これを用いると、小さな移動距離については大きな誤差はなく求めることができます。初期状態の経度$\phi$を定義しましたが、結果には関係がないこともお分かりいただけたと思います。

 次は、きちんと楕円を近似する方法について説明します。



コメント

コメントを投稿

コメントをどうぞ。

このブログの人気の投稿

MS Azure Information Protection を入れたら右クリックの「分類して保護する」がうざい

Zwiftがいきなり楽になってしまった件(顛末)