JavaScriptを使用して2つの場所間の距離を計算するにはどうすればよいですか?これを実現する方法はたくさんあると思います。次の記事では、経度と緯度から 2 つの場所間の距離を計算する JavaScript を紹介します。
最近、仕事の都合で経度と緯度から二地点間の距離を計算する方法をネットで検索したところ、幾何学的な方法、絵を描く方法、補助線をたくさん作る方法、それから推論を証明するか、何も言わずに直接公式を定式化します。この記事ではこの距離の求め方をわかりやすく紹介します。
簡単のため、地球は不規則な楕円体であり、計算では球として扱います。
球上の 2 つの場所間の最短距離は、2 点を通る大円の短弧の長さです。
考え方は以下の通りです:
円弧長 ← 弦の長さ(2点間の距離) ← 2点座標(直交座標) ← 緯度と経度
と仮定します。地球の半径は $R$
地球の中心と E 0° N 0° を結ぶ線が x 軸です
地球の中心と E 90° N 0° を結ぶ線が y 軸です-軸
地球の中心とE 0°N 90°を結ぶ線がz軸です
地球の表面に点$A$があり、経度は$e$、緯度は$n$、単位はラジアン
その場合、$A$ の座標は次のように表すことができます:$$ x = R cdot cos(n) cdot cos(e)\ y = R cdot cos(n) cdot sin(e)\ z = R cdot sin(n) $$
コードconst R = 6371 const {cos, sin, PI} = Math let getPoint = (e, n) => { //首先将角度转为弧度 e *= PI/180 n *= PI/180 reutrn { x: R*cos(n)*cos(e), y: R*cos(n)*sin(e), z: R*sin(n) } }
3. 弦の長さに基づいて円弧の長さを求めます
これで、弦の長さ $c$、半径 $R$ が分かり、円弧の長さ $r$ が必要になります
$$ アルファ = arcsin(c/2/R)\ r = 2α cdot R 米ドル
以上がJavascriptは経度と緯度から2つの場所間の距離を計算しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。