【数式と導出】経度と緯度から地上の2点間の距離を計算します。
1. 仮定: 地球は完全な球体です。地上の 2 点 A と B の経度座標は (Aj, Aw)、緯度座標は (Bj, Bw) であり、地球の平均半径 R は 6371km です。
2. 3 次元直交座標系を確立します:
地球の中心は原点 O、地球の軸は Z 軸、北極です方向が Z 軸の正の方向、赤道面が X 軸と Y 軸が位置する平面で、この平面上で地球の中心から経度 0 度に向かう方向が正になりますX 軸の正の方向と Y 軸の正の方向は右手の法則に従って決定されます。
点Aの3次元座標を(Ax, Ay, Az)、点Bの3次元座標を(Bx, By, Bz)とする。 3. 考え方: 3 点 A、B、O が地球と交わる平面は半径 R の円を形成します。AB 間の地上距離を求めるには、円上の円弧AB。円弧の長さは半径と中心角の積に等しいことが式からわかります。
Rが決まるので、OAとOBのなす角度θが分かれば、円弧ABの長さが求まります。円弧AB=R*θ。
角度 θ は、次のベクトル式で取得できます:
ベクトル OA*ベクトル OB=|OA||OB|cosθ。
cosθ=向量OA*向量OB/|OA||OB| =(Ax*Bx+Ay*By+Az*Bz)/R*R
4. 経度と緯度の座標を使用して 3 次元の直交座標を表現します:
Ax=R*cosAw*cosAj Ay=R*cosAw*sinAj Az=R*sinAw Bx=R*cosBw*cosBj By=R*cosBw*sinBj Bz=R*sinBw
を に代入して
cosθ=cosAw*cosAj*cosBw*cosBj+cosAw*sinAj*cosBw*sinBj+sinAw*sinBw =cosAw*cosBw(cosAj*cosBj+sinAj*sinBj)+sinAw*sinBw =cosAw*cosBw*cos(Aj-Bj)+sinAw*sinBw θ=arccos[cosAw*cosBw*cos(Aj-Bj)+sinAw*sinBw]
5 を取得します。要約すると、経度と緯度に基づいて計算できます。 地上の 2 点間の距離の公式:
弧AB=R*arccos[cosAw*cosBw*cos(Aj-Bj)+sinAw*sinBw]
説明:
誰もが同様の公式の導出を行っています。久しぶりに書くと忘れてしまうこともあるかもしれないのでメモしておきました。
三角関数は多くの変換を行うため、式は複数の形式で表現できます。前提条件が同じである限り、それらは数学的に等価であり、相互に演繹することができます。
実際のプログラムコードで使用する場合は、ロケータから得られる経度や緯度の単位が度であり、三角関数の計算方法ではラジアンが使用される可能性が高いなど、単位の問題に注意する必要があります。長さの単位がkmかmか、お待ちください。
推奨: 「
以上が【数式と導出】経度と緯度から地上の2点間の距離を計算します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









