Bookmarks    
P値の計算    
比の計算    
行列式    
逆行列    
円の計算    
球の体積    
年齢計算    
日数計算    
曜日計算    
時差計算    
複利計算    
単利計算    
利息計算    
ROIの計算    
IRRの計算    
GDPの計算    
CAGR計算    
BMI計算機    
TDEE計算機    
1RM計算機    
露点温度    
進数変換    
給与換算    
燃費計算    
生コン量    
外壁面積    
   追加
確率・ランダムの計算ツール
2つの独立な事象の確率
2つの独立な事象の確率
2つの事象の確率(逆算)
2つの事象の確率(逆算)
くり返したときの確率
くり返したときの確率
条件付き確率・ベイズの定理
条件付き確率・ベイズの定理
期待値計算機
期待値計算機
二項分布の計算機
二項分布の計算機
順列・組み合わせ
順列・組み合わせ
円順列・じゅず順列
円順列・じゅず順列
重複順列・重複組合せ
重複順列・重複組合せ
乱数ジェネレーター
乱数ジェネレーター
平均・統計の計算ツール
平均計算機
平均計算機
代表値計算機(最頻値ほか)
代表値計算機(最頻値ほか)
標準偏差計算機
標準偏差計算機
四分位数計算機
四分位数計算機
度数分布表 計算機
度数分布表 計算機
相関係数計算機
相関係数計算機
正規分布の確率
正規分布の確率
Zスコアの計算
Zスコアの計算
信頼区間の計算
信頼区間の計算
サンプルサイズの計算
サンプルサイズの計算
標本調査の計算
標本調査の計算
P値の計算
P値の計算
割合・パーセントの計算ツール
割合・パーセントの計算
割合・パーセントの計算
増減率の計算
増減率の計算
パーセント差
パーセント差
誤差率の計算
誤差率の計算
比の計算
比の計算
割引計算機
割引計算機
消費税の計算
消費税の計算
利益率計算機
利益率計算機
速さの計算ツール
速さ計算機
速さ計算機
密度・濃度の計算ツール
密度計算機
密度計算機
モル濃度計算機
モル濃度計算機
分子量・モル質量
分子量・モル質量
物理・電気工学の計算ツール
オームの法則の計算
オームの法則の計算
W・A・V の相互換算
W・A・V の相互換算
抵抗器カラーコードの計算
抵抗器カラーコードの計算
電圧降下の計算
電圧降下の計算
単位の換算の計算ツール
坪・畳・㎡換算
坪・畳・㎡換算
重さの単位換算
重さの単位換算
靴サイズの変換
靴サイズの変換
整数・正負の数の計算ツール
割り算の筆算(商と余り)
割り算の筆算(商と余り)
最小公倍数計算機
最小公倍数計算機
最大公約数
最大公約数
正負の数の計算機
正負の数の計算機
素因数分解
素因数分解
一次不定方程式計算機
一次不定方程式計算機
合同式・余りの計算機
合同式・余りの計算機
約数計算機
約数計算機
ローマ数字変換
ローマ数字変換
分数・小数・端数処理の計算ツール
分数計算機
分数計算機
帯分数計算機
帯分数計算機
約分計算機
約分計算機
分数から小数への変換
分数から小数への変換
小数から分数への変換
小数から分数への変換
四捨五入・切り上げ・切り捨て
四捨五入・切り上げ・切り捨て
方程式・不等式の計算ツール
一次方程式計算機
一次方程式計算機
連立方程式計算機
連立方程式計算機
二次方程式の解の公式
二次方程式の解の公式
絶対値の方程式・不等式
絶対値の方程式・不等式
二次不等式 計算機
二次不等式 計算機
三次方程式計算機
三次方程式計算機
多項式・式の展開の計算ツール
文字式の計算機
文字式の計算機
因数分解計算機
因数分解計算機
式の展開 計算機
式の展開 計算機
多項式の割り算計算機
多項式の割り算計算機
二項定理の計算機
二項定理の計算機
平方根・n乗根の計算ツール
根号の簡約
根号の簡約
分母の有理化
分母の有理化
累乗根の計算
累乗根の計算
指数・対数の計算ツール
べき乗計算機
べき乗計算機
対数計算機
対数計算機
常用対数と桁数
常用対数と桁数
科学的記数法
科学的記数法
科学的記数法の計算
科学的記数法の計算
半減期計算機
半減期計算機
複素数の計算ツール
複素数計算機
複素数計算機
複素数の極形式変換
複素数の極形式変換
ド・モアブルの定理
ド・モアブルの定理
関数・グラフの計算ツール
直線の傾きの計算
直線の傾きの計算
一次関数計算機
一次関数計算機
比例・反比例 計算機
比例・反比例 計算機
二次関数 y=ax² 計算機
二次関数 y=ax² 計算機
2点間の距離の計算
2点間の距離の計算
3D空間の2点間の距離の計算
3D空間の2点間の距離の計算
内分点・外分点の計算
内分点・外分点の計算
点と直線の距離 計算機
点と直線の距離 計算機
緯度経度の距離計算
緯度経度の距離計算
平方完成 計算機
平方完成 計算機
円の方程式 計算機
円の方程式 計算機
二次曲線計算機
二次曲線計算機
極座標と直交座標の変換
極座標と直交座標の変換
微分・積分の計算ツール
極限計算機
極限計算機
導関数計算機
導関数計算機
微分公式の計算機
微分公式の計算機
接線・法線 計算機
接線・法線 計算機
定積分計算機
定積分計算機
不定積分計算機
不定積分計算機
2曲線間の面積
2曲線間の面積
回転体の体積 計算機
回転体の体積 計算機
数列の計算ツール
等差数列の計算
等差数列の計算
等比数列の計算
等比数列の計算
Σ(シグマ)計算機
Σ(シグマ)計算機
フィボナッチ数列の計算
フィボナッチ数列の計算
漸化式計算機
漸化式計算機
ベクトルの計算ツール
ベクトルの計算
ベクトルの計算
外積の計算
外積の計算
行列の計算ツール
行列の計算
行列の計算
行列式
行列式
逆行列
逆行列
平面図形の計算ツール
三角比の計算
三角比の計算
度とラジアンの変換
度とラジアンの変換
三角関数の合成
三角関数の合成
三角形計算機
三角形計算機
三角形の面積計算機
三角形の面積計算機
直角三角形の計算
直角三角形の計算
三平方の定理の計算
三平方の定理の計算
多角形の内角・外角
多角形の内角・外角
相似比・面積比・体積比
相似比・面積比・体積比
平行線と角
平行線と角
長方形の面積
長方形の面積
平行四辺形の面積
平行四辺形の面積
台形の面積
台形の面積
円の計算
円の計算
扇形の面積
扇形の面積
円周角の定理
円周角の定理
楕円の面積
楕円の面積
空間図形の計算ツール
立方体の体積
立方体の体積
立方体の表面積
立方体の表面積
直方体の体積
直方体の体積
直方体の表面積
直方体の表面積
円柱の体積
円柱の体積
円柱の表面積
円柱の表面積
球の体積
球の体積
球の表面積
球の表面積
球欠(球冠)の体積
球欠(球冠)の体積
球冠の表面積
球冠の表面積
楕円体の体積
楕円体の体積
楕円体の表面積
楕円体の表面積
四角錐の体積
四角錐の体積
四角錐の表面積
四角錐の表面積
円錐の体積
円錐の体積
円錐の表面積
円錐の表面積
円錐台の体積
円錐台の体積
円錐台の表面積
円錐台の表面積
パイプ(管)の体積
パイプ(管)の体積
カプセル形の体積
カプセル形の体積
カプセルの表面積
カプセルの表面積
日付・時間の計算ツール
年齢計算
年齢計算
日数計算
日数計算
○日後・○日前の日付
○日後・○日前の日付
○時間後・○時間前の日時
○時間後・○時間前の日時
曜日計算
曜日計算
時間の足し算・引き算
時間の足し算・引き算
時差計算
時差計算
勤務時間計算
勤務時間計算
時間差の計算
時間差の計算
タイムカード計算
タイムカード計算
金融・経済の計算ツール
複利計算
複利計算
単利計算
単利計算
利息計算
利息計算
ファイナンス計算機
ファイナンス計算機
現在価値の計算
現在価値の計算
将来価値の計算
将来価値の計算
ROIの計算
ROIの計算
IRRの計算
IRRの計算
回収期間の計算
回収期間の計算
平均リターンの計算
平均リターンの計算
GDPの計算
GDPの計算
Webマーケ・広告指標の計算ツール
クリック率(CTR)の計算
クリック率(CTR)の計算
コンバージョン率(CVR)の計算
コンバージョン率(CVR)の計算
CPC・CPM・CPA計算機
CPC・CPM・CPA計算機
ROAS(広告費用対効果)の計算
ROAS(広告費用対効果)の計算
損益分岐CPA・許容CPA計算機
損益分岐CPA・許容CPA計算機
顧客生涯価値(LTV)の計算
顧客生涯価値(LTV)の計算
顧客獲得コスト(CAC)とLTV/CAC比
顧客獲得コスト(CAC)とLTV/CAC比
チャーン率(解約率)と平均継続期間
チャーン率(解約率)と平均継続期間
A/Bテストの有意差判定
A/Bテストの有意差判定
A/Bテストの必要サンプル数
A/Bテストの必要サンプル数
検索順位別CTRからの想定流入数
検索順位別CTRからの想定流入数
損益分岐点計算機
損益分岐点計算機
値入率・掛率換算
値入率・掛率換算
CAGR計算
CAGR計算
健康・フィットネスの計算ツール
BMI計算機
BMI計算機
睡眠サイクル計算
睡眠サイクル計算
カロリー計算機
カロリー計算機
基礎代謝量計算機
基礎代謝量計算機
TDEE計算機
TDEE計算機
理想体重計算機
理想体重計算機
体脂肪率計算機
体脂肪率計算機
除脂肪体重計算機
除脂肪体重計算機
消費カロリー計算機
消費カロリー計算機
たんぱく質摂取量計算機
たんぱく質摂取量計算機
PFCバランス計算機
PFCバランス計算機
炭水化物摂取量計算機
炭水化物摂取量計算機
脂質摂取量計算機
脂質摂取量計算機
子供の身長予測
子供の身長予測
スポーツの計算ツール
ゴルフハンディキャップ
ゴルフハンディキャップ
ペース計算機
ペース計算機
1RM計算機
1RM計算機
目標心拍数計算機
目標心拍数計算機
気象の計算ツール
ヒートインデックス
ヒートインデックス
ウインドチル
ウインドチル
露点温度
露点温度
コンピュータの計算ツール
進数変換
進数変換
IPサブネット計算機
IPサブネット計算機
帯域幅・ダウンロード時間の計算機
帯域幅・ダウンロード時間の計算機
家計・光熱費の計算ツール
電気代計算
電気代計算
kWh→電気代・逆算
kWh→電気代・逆算
年間消費電力量→電気代
年間消費電力量→電気代
エアコン畳数・能力
エアコン畳数・能力
エアコンの電気代計算
エアコンの電気代計算
暖房の電気代比較
暖房の電気代比較
ガスと電気の光熱費比較
ガスと電気の光熱費比較
LED交換の節約額
LED交換の節約額
給与換算
給与換算
家計収支の計算
家計収支の計算
自動車の計算ツール
ガソリン代計算
ガソリン代計算
EV充電コスト
EV充電コスト
EVとガソリン車の燃料費比較
EVとガソリン車の燃料費比較
燃費計算
燃費計算
タイヤサイズ計算
タイヤサイズ計算
太陽光発電・蓄電池の計算ツール
太陽光発電の発電量
太陽光発電の発電量
太陽光パネルの枚数と面積
太陽光パネルの枚数と面積
太陽光発電の回収年数
太陽光発電の回収年数
蓄電池の必要容量と持ち時間
蓄電池の必要容量と持ち時間
住まい・DIYの計算ツール
タイル枚数
タイル枚数
階段の寸法
階段の寸法
生コン量
生コン量
壁・天井・床の面積
壁・天井・床の面積
壁紙の必要量
壁紙の必要量
塗料の必要量
塗料の必要量
フローリング枚数
フローリング枚数
外壁面積
外壁面積
砂利の必要量
砂利の必要量
モルタルの配合
モルタルの配合
勾配の計算
勾配の計算
木材の取り数
木材の取り数
建ぺい率・容積率
建ぺい率・容積率
クッションフロア必要量
クッションフロア必要量
畳の枚数と広さ
畳の枚数と広さ
断熱材の必要量
断熱材の必要量
カーテンのサイズ
カーテンのサイズ
テレビのサイズと視聴距離
テレビのサイズと視聴距離
土・培養土の必要量
土・培養土の必要量
芝生の必要枚数
芝生の必要枚数
ブロック塀の個数
ブロック塀の個数
レンガの必要枚数
レンガの必要枚数
ウッドデッキの材料
ウッドデッキの材料
スロープの必要長さ
スロープの必要長さ
ネジの下穴径と長さ
ネジの下穴径と長さ
容積と必要換気量
容積と必要換気量
塗料の希釈計算
塗料の希釈計算
巾木・廻り縁の長さ
巾木・廻り縁の長さ
ブラインドの採寸
ブラインドの採寸
額縁の取り付け高さと配置
額縁の取り付け高さと配置
排水勾配と高低差
排水勾配と高低差
ビス・釘の必要本数
ビス・釘の必要本数
木材の材積(m³・才)
木材の材積(m³・才)
フェンスの本数
フェンスの本数
木材の収縮量(含水率変化)
木材の収縮量(含水率変化)
接着剤・コーキングの必要量
接着剤・コーキングの必要量
部屋の熱損失の目安
部屋の熱損失の目安
家具の搬入可否
家具の搬入可否
引越しのダンボール枚数
引越しのダンボール枚数
収納・棚の容量
収納・棚の容量
板取り計算
板取り計算
棚板のたわみと耐荷重
棚板のたわみと耐荷重

緯度経度から2地点間の距離計算機(10進・度分秒対応)

2地点の緯度・経度を入力すると、地球表面に沿った2地点間の距離をkmとマイルで計算します。入力形式は10進形式と度分秒(DMS)形式を切り替えられます。

すべての欄に半角の数値を入力してください。10進形式では南緯・西経はマイナスの数値で入力します(例:西経77.0366° → −77.0366)。度分秒形式では北緯/南緯・東経/西経をプルダウンで選びます。
計算結果
左の入力欄に2地点の緯度・経度を入れて「計算する」を押すと、ここに結果が表示されます。

このページでできること

  • 2地点の緯度・経度を入れるだけで、地球の表面に沿った2地点間の距離(km・マイル)がその場でわかります
  • 入力は10進形式(例:35.6895)と度分秒(DMS)形式(例:35°41′22.2″)の両対応。ラジオボタンで切り替えられます
  • 地球を回転楕円体(少しつぶれた球)として近似するランベルト(Lambert)の方法で計算します。地球を完全な球とみなすハーバーサインの公式より実際の地球に近い、高精度な近似です
  • 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
求めるのは地球の表面に沿った最短経路(測地線)のおよその長さです。道路や線路に沿った移動距離ではありません。10進形式では南緯・西経をマイナスの数値で入力します。

この計算は何の役に立つ?

飛行機の航路とマイレージの距離(航空)

飛行機は地球の丸みに沿った最短コース(大圏コース)に近いルートを飛ぶため、都市間の飛行距離はこのページのような「地球の表面に沿った距離」で見積もられます(東京–ロンドンは約9,600km = 約6,000マイル)。マイレージの区間距離も、この考え方の距離が基になっています。
「地図の上では遠回りに見えるのに、なぜ北極近くを飛ぶのか」も、この距離を計算すると納得できます。

スマホの位置情報サービス(「近くのお店」検索)

地図アプリや配達アプリの「現在地から近い順」は、現在地とお店の緯度・経度から2地点間の距離を計算して並べ替えています。プログラムの世界では、球面近似のハーバーサインの公式がこの用途の定番で、より高い精度が必要な場面ではこのページのランベルトの方法のような楕円体の式が使われます。
毎日使うアプリの裏側で、まさにこの式が大量に計算されています。

ランニング・登山アプリのGPS距離計測(スポーツ)

GPSウォッチやランニングアプリの走行距離は、数秒ごとに記録した測位点の間の距離をこの種の式で計算し、足し合わせて求めています。1区間ずつは数十mでも、緯度経度→距離の変換を何千回もくり返して「今日は10.2km走った」が表示されています。

船の航海計画と海里(海運・物流)

船の世界では距離を海里(1海里 = 1.852km。ほぼ緯度1分の長さ)で測り、出発港から目的港までの航程を地球の丸みに沿った距離で計画します。到着日時や燃料の見積もりは、この距離計算が出発点です。
世界の貿易貨物の多くを運ぶ海運を、緯度経度の距離計算が支えています。

地震情報の「震央から◯km」(防災)

地震のニュースで見る「震央から◯kmの地点で震度5強」のような表現は、震央(震源の真上の地点)の緯度・経度と各観測点の緯度・経度から、このページと同じ考え方で距離を計算したものです。
自宅と活断層・震央との距離感を数字でつかんでおくことは、防災の備えの第一歩になります。

式

2地点の間の中心角 \(c\)(ランベルトの方法・前半)
数学表記 (一般的な数式)
\(U\) \(=\) \(\arctan\bigl((1 - f)\tan \varphi\bigr)\)
\(c\) \(=\) \(2\arcsin\sqrt{\sin^2\!\frac{U_2 - U_1}{2} + \cos U_1 \cos U_2 \sin^2\!\frac{\lambda_2 - \lambda_1}{2}}\)
日本語表記 (記号を日本語に置き換えた式)
② 更成緯度 \(U\) \(=\) ① 緯度 \(\varphi\) を扁平率 \(f\) の分だけ縮めた角度
④ 2地点の間の中心角 \(c\) \(=\) ③ 更成緯度の差と経度の差から作る角度
式を日本語で読むと
① 緯度 \(\varphi\) を扁平率 \(f\) の分だけ縮めた角度 \(\arctan((1-f)\tan\varphi)\) を2地点それぞれで計算して
② 更成緯度 \(U\) を求める(\(U_1\)・\(U_2\))。次に
③ 更成緯度の差 \(U_2 - U_1\) と経度の差 \(\lambda_2 - \lambda_1\) から作る角度 を計算すると
④ 2地点の間の中心角 \(c\) になる(地球の中心から2地点を見たときの開き角)
簡単な例
東京(北緯35.6895°・東経139.6917°)と大阪(北緯34.6937°・東経135.5023°)の中心角は
中心角 \(c\) \(=\) 東京と大阪の更成緯度の差・経度の差から作る角度
\(U_1 = \arctan\bigl((1 - \tfrac{1}{298.257})\tan 35.6895^\circ\bigr) \fallingdotseq 35.5984^\circ, \quad U_2 \fallingdotseq 34.6037^\circ\)
\(c = 2\arcsin\sqrt{0.00096949} \fallingdotseq 0.062283 \ \mathrm{rad} \ (\fallingdotseq 3.5686^\circ)\)
考え方のポイント
地球は完全な球ではなく、赤道半径が約6378km・極半径が約6357kmと、南北方向に約300分の1だけつぶれた「回転楕円体」です。このつぶれ具合を表すのが扁平率 \(f = \dfrac{1}{298.257}\) で、緯度をそのまま球の式に入れるとこのつぶれの分だけずれてしまいます。そこで、まず各地点の緯度を「楕円体を球に見立て直した緯度」=更成緯度 \(U\) に換算してから、球面上の2点の中心角を求める定番の式(ハーバーサイン形の式)を使います。 なお、プログラムで計算するときは \(c = 2\,\mathrm{atan2}(\sqrt{a},\ \sqrt{1-a})\)(\(a\) はルートの中身)と書くと、\(2\arcsin\sqrt{a}\) と同じ値をより安定して計算できます(このページの計算機もこの書き方を使っています)。
楕円体の補正と距離 \(d\)(ランベルトの方法・後半)
数学表記 (一般的な数式)
\(d\) \(=\) \(6378.1\) \(\times\) \(\bigl(\) \(c\) \(-\) \(\frac{f(X + Y)}{2}\) \(\bigr)\)
日本語表記 (記号を日本語に置き換えた式)
④ 2地点間の距離 \(d\) \(=\) ③ 赤道半径 6378.1 km \(\times\) \(\bigl(\) ① 中心角 \(c\) \(-\) ② 扁平の補正 \(f(X+Y) \div 2\) \(\bigr)\)
式を日本語で読むと
① 中心角 \(c\)(ラジアン) から
② 扁平の補正 \(f(X+Y) \div 2\)(\(X\)・\(Y\) は補正の中間量) を引き
③ 赤道半径 6378.1 km を掛けると
④ 2地点間の距離 \(d\) になる(単位はkm)
簡単な例
東京と大阪(中心角 c ≒ 0.062283 rad)では
距離 \(d\) \(=\) 赤道半径(6378.1 km) \(\times\) \(\bigl(\) 中心角(0.062283 rad) \(-\) 扁平の補正(約0.0000109) \(\bigr)\)
\(X \fallingdotseq 0.0000133, \quad Y \fallingdotseq 0.006478, \quad \frac{f(X + Y)}{2} \fallingdotseq 0.0000109\)
\(d = 6378.1 \times (0.062283 - 0.0000109) \fallingdotseq 397.2 \ \mathrm{km} \quad (397.2 \div 1.60935 \fallingdotseq 246.8 \ \mathrm{mile})\)
考え方のポイント
土台は「弧の長さ = 半径 × 中心角(ラジアン)」というおうぎ形の関係です。\(6378.1 \times c\) だけだと地球を赤道半径の球とみなした弧の長さになり、東京–大阪では約397.25kmです。そこから楕円体のつぶれの分を \(\dfrac{f(X+Y)}{2}\) で補正します(東京–大阪では約70m縮んで397.18km)。 補正の中間量 \(X\)・\(Y\) の正確な定義は \(X = \dfrac{(c - \sin c)\sin^2 P \cos^2 Q}{\cos^2(c/2)}\)、\(Y = \dfrac{(c + \sin c)\sin^2 Q \cos^2 P}{\sin^2(c/2)}\)(ここで \(P = \dfrac{U_1 + U_2}{2}\)、\(Q = \dfrac{U_2 - U_1}{2}\))です。見た目は複雑ですが、どれも式1で求めた更成緯度と中心角から機械的に計算できる量です。このランベルトの方法の誤差は、数千kmの距離でもおよそ10m程度とされています。
度分秒(DMS)→ 10進形式の換算
数学表記 (一般的な数式)
\(D\) \(=\) \(d\) \(+\) \(\frac{m}{60}\) \(+\) \(\frac{s}{3600}\)
日本語表記 (記号を日本語に置き換えた式)
④ 10進形式の角度 \(D\) \(=\) ① 度 \(d\) \(+\) ② 分 \(m \div 60\) \(+\) ③ 秒 \(s \div 3600\)
式を日本語で読むと
① 度 \(d\) に
② 分 \(m\) を60で割った値 と
③ 秒 \(s\) を3600で割った値 を足すと
④ 10進形式の角度 \(D\) になる(南緯・西経のときは最後にマイナスを付ける)
簡単な例
ワシントンD.C.の緯度「北緯38度53分51.36秒」を10進形式にすると
10進形式の角度 \(D\) \(=\) 度(38) \(+\) 分(53)÷ 60 \(+\) 秒(51.36)÷ 3600
\(38 + \frac{53}{60} + \frac{51.36}{3600} = 38 + 0.883333\ldots + 0.014266\ldots \fallingdotseq 38.8976\)
考え方のポイント
度・分・秒は、時間の「時・分・秒」と同じ60進法です。1度 = 60分、1分 = 60秒(つまり1度 = 3600秒)なので、分は60で、秒は3600で割って度に直します。 南緯・西経のときは、換算した値の全体にマイナスを付けます(例:西経77°2′11.76″ → −77.0366°)。この計算機の10進形式ではこのマイナス付きの値を入力し、度分秒形式ではプルダウンで「南緯」「西経」を選べば同じ扱いになります。
緯度経度の距離は「地球を少しつぶれた回転楕円体とみなし、2地点の間の中心角を求めて、弧の長さ=半径×中心角に扁平の補正を入れる」——これがランベルトの方法です。度分秒は時間と同じ60進法で、分÷60・秒÷3600で10進の度に直せます。

用語・記号の解説

記号

\(\varphi\) ファイ 緯度。赤道を0°として南北方向にどれだけ離れているかを表す角度です。北緯がプラス、南緯がマイナス(−90°〜90°)。
\(\lambda\) ラムダ 経度。イギリスの旧グリニッジ天文台を通る本初子午線を0°として東西方向の位置を表す角度です。東経がプラス、西経がマイナス(−180°〜180°)。
\(f\) エフ 地球の扁平率。回転楕円体がどれだけつぶれているかの割合で、この計算では \(f = \dfrac{1}{298.257}\) を使います。
\(U\) ユー 更成緯度。楕円体上の緯度を、球の式で扱えるように \(U = \arctan((1-f)\tan\varphi)\) で換算し直した緯度です。
\(c\) シー 中心角。地球の中心から2地点を見たときの開き角(ラジアン)です。「弧の長さ=半径×中心角」で距離の土台になります。
\(X\), \(Y\) エックス、ワイ 楕円体のつぶれの分を補正するための中間量。中心角 \(c\) と、更成緯度の平均 \(P = \dfrac{U_1+U_2}{2}\)・半差 \(Q = \dfrac{U_2-U_1}{2}\) から計算します。
\(d\) ディー 2地点間の距離。distance(距離)の頭文字です。このページではkm(キロメートル)とマイルで表示します。
° ′ ″ ど、ふん、びょう 角度の度・分・秒の記号。1° = 60′、1′ = 60″ です。例:35°41′22.2″(35度41分22.2秒)。

用語

緯度 いど 赤道を0度として、南北方向の位置を表す角度。北極が北緯90度、南極が南緯90度です。地図や位置情報の基本で、小学校の社会科・中学の地理で学びます。
経度 けいど 本初子午線(イギリスのグリニッジを通る線)を0度として、東西方向の位置を表す角度。東経・西経それぞれ180度まであり、日本は東経135度付近です。
度分秒 どふんびょう 角度を度・分・秒の60進法で表す書き方(DMS形式)。1度=60分、1分=60秒です。国土地理院の地図やGPS機器でよく使われます。
回転楕円体 かいてんだえんたい 楕円を軸の周りに回転させてできる立体。地球は自転の遠心力で赤道方向に膨らんでいるため、球ではなく回転楕円体で近似します。
扁平率 へんぺいりつ 回転楕円体のつぶれ具合を表す割合。(赤道半径−極半径)÷赤道半径で定義され、地球では約300分の1です。
更成緯度 こうせいいど 楕円体上の点を、その楕円のもとになる補助円(球)の上に写し直したときの緯度。\(U = \arctan((1-f)\tan\varphi)\) で換算でき、測地学(地球の形を測る学問)で使われます。「化成緯度(かせいいど)」「パラメトリック緯度」とも呼ばれます。
中心角 ちゅうしんかく 円や球の中心から2点を見たときの開き角。おうぎ形の「弧の長さ=半径×中心角(ラジアン)」の関係が、このページの距離計算の土台です。
測地線 そくちせん 曲面の上の2点を結ぶ最短の経路。地球の表面では「大圏コース」とも呼ばれ、飛行機の航路がこれに近い形になります。このページで求めるのは測地線に沿ったおよその長さです。
ハーバーサインの公式 ハーバーサインのこうしき 地球を完全な球とみなして2地点間の距離を求める有名な公式。このページのランベルトの方法は、その改良版(楕円体対応版)にあたり、式1の中心角の計算にハーバーサイン形の式を使っています。
ランベルトの方法 ランベルトのほうほう 地球を回転楕円体として近似して2地点間の距離を求める方法(Lambert's formula)。数千kmの距離でも誤差はおよそ10m程度とされ、球面近似より高精度です。
マイル マイル 主にアメリカ・イギリスで使われる距離の単位(法定マイル)。1マイル = 約1.609km(国際的な定義では1.609344km)で、この計算機では 1マイル = 1.60935km として換算しています。次の「海里」とは別の単位です。
海里 かいり 船や航空の世界で使われる距離の単位(ノーティカルマイル)。1海里 = 1.852km で、地球の緯度1分(1度の60分の1)の長さにほぼ等しくなるように決められました。

前提として理解しておくといいこと

このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
距離を求めるだけなら緯度・経度の読み方がわかれば十分です。式の中身まで理解したい場合は、三角比・ラジアンまでさかのぼります。

緯度・経度(小学5年 社会/中学1年 地理)
  • 緯度が「赤道から南北にどれだけ離れているかの角度」、経度が「本初子午線から東西にどれだけ離れているかの角度」だとわかること
  • 北緯/南緯・東経/西経の区別がつくこと(日本は北緯20〜46度・東経123〜154度あたり)
角度と60進法(小学4〜5年 角度・時間)
  • 1度 = 60分、1分 = 60秒という、時間と同じ60進法の関係がわかること
  • 「30分は0.5度」のように、分・秒を度の小数に直せること
おうぎ形の弧の長さ(中学1年)
  • 弧の長さが「半径と中心角に比例する」こと(式2の「半径×中心角」の土台です)
三角比 sin・cos・tan(高校 数学I)
  • sin・cos・tanが「角度から決まる値」だとわかること(式の中身を理解したい場合のみ。計算機を使うだけなら不要です)
ラジアン(高校 数学II)
  • 角度のもう1つの単位。半径1の円で弧の長さがそのまま角度になる測り方で、「弧の長さ = 半径 × 中心角」が成り立つのはラジアンのときです
地球の形(中学 理科/高校 地学基礎)
  • 地球が完全な球ではなく、自転の影響で赤道方向にわずかに膨らんだ回転楕円体であること

Excelで計算する方法

Excelファイルをダウンロード
式ごとにシートが分かれたExcelファイルです。貼り付け場所を気にせず、開いてすぐ使えます。
下の表を丸ごとコピーして、ExcelのA1セルに貼り付けるとそのまま使えます。
「度分秒→10進形式」の換算表
度 38
分 53
秒 51.36
10進形式の角度(南緯・西経は−を付ける) =B1+B2/60+B3/3600
「ランベルトの方法で距離」を求める表
点1の緯度(10進。南緯は−) 35.6895
点1の経度(10進。西経は−) 139.6917
点2の緯度 34.6937
点2の経度 135.5023
扁平率 f =1/298.257
更成緯度 U1 =ATAN((1-B5)*TAN(RADIANS(B1)))
更成緯度 U2 =ATAN((1-B5)*TAN(RADIANS(B3)))
経度差 Δλ(ラジアン) =RADIANS(B4-B2)
ハーバーサイン形の中身 a =SIN((B7-B6)/2)^2+COS(B6)*COS(B7)*SIN(B8/2)^2
中心角 c(ラジアン) =2*ATAN2(SQRT(1-B9),SQRT(B9))
平均 P =(B6+B7)/2
半差 Q =(B7-B6)/2
補正の中間量 X =(B10-SIN(B10))*SIN(B11)^2*COS(B12)^2/COS(B10/2)^2
補正の中間量 Y =(B10+SIN(B10))*SIN(B12)^2*COS(B11)^2/SIN(B10/2)^2
距離(km) =6378.1*(B10-B5*(B13+B14)/2)
距離(マイル) =B15/1.60935
1つ目の表は度分秒→10進の換算で、B4に38.8976と表示されます。
2つ目の表はランベルトの方法の全手順です。B1〜B4が入力欄(10進形式)で、B6以降が式1・式2の中間量、B15が距離(km)=約397.18、B16がマイル=約246.80になります(このページの計算機は表示を397.2kmに丸めています)。
「RADIANS(…)」は度→ラジアンの換算、「ATAN2(x, y)」はExcelでは引数が(x座標, y座標)の順なので、c = 2×ATAN2(√(1−a), √a) と書く点に注意してください。

Googleスプレッドシートで計算する方法

Excelファイルをダウンロード
上のExcelファイルをダウンロードし、Googleドライブにアップロードして開くと、そのままスプレッドシートとして使えます。
下の表を丸ごとコピーして、GoogleスプレッドシートのA1セルに貼り付けるとそのまま使えます。
「度分秒→10進形式」の換算表
度 38
分 53
秒 51.36
10進形式の角度(南緯・西経は−を付ける) =B1+B2/60+B3/3600
「ランベルトの方法で距離」を求める表
点1の緯度(10進。南緯は−) 35.6895
点1の経度(10進。西経は−) 139.6917
点2の緯度 34.6937
点2の経度 135.5023
扁平率 f =1/298.257
更成緯度 U1 =ATAN((1-B5)*TAN(RADIANS(B1)))
更成緯度 U2 =ATAN((1-B5)*TAN(RADIANS(B3)))
経度差 Δλ(ラジアン) =RADIANS(B4-B2)
ハーバーサイン形の中身 a =SIN((B7-B6)/2)^2+COS(B6)*COS(B7)*SIN(B8/2)^2
中心角 c(ラジアン) =2*ATAN2(SQRT(1-B9),SQRT(B9))
平均 P =(B6+B7)/2
半差 Q =(B7-B6)/2
補正の中間量 X =(B10-SIN(B10))*SIN(B11)^2*COS(B12)^2/COS(B10/2)^2
補正の中間量 Y =(B10+SIN(B10))*SIN(B12)^2*COS(B11)^2/SIN(B10/2)^2
距離(km) =6378.1*(B10-B5*(B13+B14)/2)
距離(マイル) =B15/1.60935
Excelと同じ式(RADIANS・ATAN2・SQRTなど)がGoogleスプレッドシートでもそのまま使えます。表を丸ごとコピーしてA1セルに貼り付け、B1〜B4を自分の緯度・経度に書き換えてください。

Pythonで計算する方法

import math

# 2地点の緯度・経度(10進形式。南緯・西経はマイナス)
lat1, lon1 = 35.6895, 139.6917   # 点1(東京駅付近)
lat2, lon2 = 34.6937, 135.5023   # 点2(大阪駅付近)

flattening = 1 / 298.257         # 地球の扁平率 f
equator_radius_km = 6378.1       # 赤道半径 km

# 式1の前半:更成緯度(緯度を扁平の分だけ縮めた角度)
u1 = math.atan((1 - flattening) * math.tan(math.radians(lat1)))
u2 = math.atan((1 - flattening) * math.tan(math.radians(lat2)))
delta_lon = math.radians(lon2 - lon1)

# 式1の後半:ハーバーサイン形の式で2地点の間の中心角cを求める
a = math.sin((u2 - u1) / 2) ** 2 + math.cos(u1) * math.cos(u2) * math.sin(delta_lon / 2) ** 2
central_angle = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))

# 式2:楕円体のつぶれの分の補正(X・Y)を入れて距離を求める
p = (u1 + u2) / 2
q = (u2 - u1) / 2
x = (central_angle - math.sin(central_angle)) * math.sin(p) ** 2 * math.cos(q) ** 2 / math.cos(central_angle / 2) ** 2
y = (central_angle + math.sin(central_angle)) * math.sin(q) ** 2 * math.cos(p) ** 2 / math.sin(central_angle / 2) ** 2

distance_km = equator_radius_km * (central_angle - flattening * (x + y) / 2)
distance_mile = distance_km / 1.60935

print(f"2地点間の距離: {distance_km:.1f} km({distance_mile:.1f} マイル)")
標準ライブラリだけで動きます。先頭の緯度・経度を書き換えて実行してください(度分秒は「度 + 分÷60 + 秒÷3600」で10進に直してから入れます)。なお、2地点にまったく同じ座標を入れると0で割ることになりエラーになります。

数式記述言語(LaTeX等)での書き方(コピペ可)

2地点の間の中心角 \(c\)(ランベルトの方法・前半)
U₁ = atan((1 − f)·tanφ₁), U₂ = atan((1 − f)·tanφ₂), c = 2·asin(√(sin²((U₂ − U₁)/2) + cosU₁·cosU₂·sin²((λ₂ − λ₁)/2)))
U_1 = \arctan\bigl((1-f)\tan\varphi_1\bigr),\ U_2 = \arctan\bigl((1-f)\tan\varphi_2\bigr),\quad c = 2\arcsin\sqrt{\sin^2\frac{U_2-U_1}{2} + \cos U_1 \cos U_2 \sin^2\frac{\lambda_2-\lambda_1}{2}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mi>U</mi><mi>i</mi></msub>
    <mo>=</mo>
    <mi>arctan</mi>
    <mo>&#x2061;</mo>
    <mrow>
      <mo>(</mo>
      <mrow><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><mi>f</mi><mo>)</mo></mrow>
      <mi>tan</mi><mo>&#x2061;</mo><msub><mi>&#x3C6;</mi><mi>i</mi></msub>
      <mo>)</mo>
    </mrow>
    <mo>,</mo>
    <mspace width="1em"/>
    <mi>c</mi>
    <mo>=</mo>
    <mn>2</mn>
    <mi>arcsin</mi>
    <mo>&#x2061;</mo>
    <msqrt>
      <mrow>
        <msup><mi>sin</mi><mn>2</mn></msup>
        <mo>&#x2061;</mo>
        <mfrac>
          <mrow><msub><mi>U</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>U</mi><mn>1</mn></msub></mrow>
          <mn>2</mn>
        </mfrac>
        <mo>+</mo>
        <mi>cos</mi><mo>&#x2061;</mo><msub><mi>U</mi><mn>1</mn></msub>
        <mi>cos</mi><mo>&#x2061;</mo><msub><mi>U</mi><mn>2</mn></msub>
        <msup><mi>sin</mi><mn>2</mn></msup>
        <mo>&#x2061;</mo>
        <mfrac>
          <mrow><msub><mi>&#x3BB;</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>&#x3BB;</mi><mn>1</mn></msub></mrow>
          <mn>2</mn>
        </mfrac>
      </mrow>
    </msqrt>
  </mrow>
</math>
U_1 = arctan((1-f) tan(varphi_1)), U_2 = arctan((1-f) tan(varphi_2)), c = 2 arcsin(sqrt(sin^2((U_2-U_1)/2) + cos(U_1) cos(U_2) sin^2((lambda_2-lambda_1)/2)))
u1 = ArcTan[(1 - f) Tan[phi1]]; u2 = ArcTan[(1 - f) Tan[phi2]]; c = 2 ArcSin[Sqrt[Sin[(u2 - u1)/2]^2 + Cos[u1] Cos[u2] Sin[(lambda2 - lambda1)/2]^2]]
U1 := arctan((1 - f)*tan(phi1)); U2 := arctan((1 - f)*tan(phi2)); c := 2*arcsin(sqrt(sin((U2 - U1)/2)^2 + cos(U1)*cos(U2)*sin((lambda2 - lambda1)/2)^2));
u1 = atan((1 - f)*tan(phi1)); u2 = atan((1 - f)*tan(phi2)); c = 2*asin(sqrt(sin((u2 - u1)/2)^2 + cos(u1)*cos(u2)*sin((lambda2 - lambda1)/2)^2));
U_1 = atan((1 - f) tan(φ_1)), U_2 = atan((1 - f) tan(φ_2)), c = 2 asin(√(sin^2((U_2 - U_1)/2) + cos(U_1) cos(U_2) sin^2((λ_2 - λ_1)/2)))
楕円体の補正と距離 \(d\)(ランベルトの方法・後半)
d = 6378.1·(c − f·(X + Y)/2), X = (c − sin c)·sin²P·cos²Q ÷ cos²(c/2), Y = (c + sin c)·sin²Q·cos²P ÷ sin²(c/2), P = (U₁ + U₂)/2, Q = (U₂ − U₁)/2
d = 6378.1\left(c - \frac{f(X + Y)}{2}\right),\quad X = \frac{(c - \sin c)\sin^2 P \cos^2 Q}{\cos^2(c/2)},\quad Y = \frac{(c + \sin c)\sin^2 Q \cos^2 P}{\sin^2(c/2)},\quad P = \frac{U_1 + U_2}{2},\ Q = \frac{U_2 - U_1}{2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>d</mi>
    <mo>=</mo>
    <mn>6378.1</mn>
    <mrow>
      <mo>(</mo>
      <mi>c</mi>
      <mo>&#x2212;</mo>
      <mfrac>
        <mrow><mi>f</mi><mo>(</mo><mi>X</mi><mo>+</mo><mi>Y</mi><mo>)</mo></mrow>
        <mn>2</mn>
      </mfrac>
      <mo>)</mo>
    </mrow>
    <mo>,</mo>
    <mspace width="1em"/>
    <mi>X</mi>
    <mo>=</mo>
    <mfrac>
      <mrow>
        <mo>(</mo><mi>c</mi><mo>&#x2212;</mo><mi>sin</mi><mo>&#x2061;</mo><mi>c</mi><mo>)</mo>
        <msup><mi>sin</mi><mn>2</mn></msup><mo>&#x2061;</mo><mi>P</mi>
        <msup><mi>cos</mi><mn>2</mn></msup><mo>&#x2061;</mo><mi>Q</mi>
      </mrow>
      <mrow><msup><mi>cos</mi><mn>2</mn></msup><mo>&#x2061;</mo><mrow><mo>(</mo><mi>c</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow></mrow>
    </mfrac>
    <mo>,</mo>
    <mspace width="1em"/>
    <mi>Y</mi>
    <mo>=</mo>
    <mfrac>
      <mrow>
        <mo>(</mo><mi>c</mi><mo>+</mo><mi>sin</mi><mo>&#x2061;</mo><mi>c</mi><mo>)</mo>
        <msup><mi>sin</mi><mn>2</mn></msup><mo>&#x2061;</mo><mi>Q</mi>
        <msup><mi>cos</mi><mn>2</mn></msup><mo>&#x2061;</mo><mi>P</mi>
      </mrow>
      <mrow><msup><mi>sin</mi><mn>2</mn></msup><mo>&#x2061;</mo><mrow><mo>(</mo><mi>c</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow></mrow>
    </mfrac>
    <mo>,</mo>
    <mspace width="1em"/>
    <mi>P</mi>
    <mo>=</mo>
    <mfrac><mrow><msub><mi>U</mi><mn>1</mn></msub><mo>+</mo><msub><mi>U</mi><mn>2</mn></msub></mrow><mn>2</mn></mfrac>
    <mo>,</mo>
    <mi>Q</mi>
    <mo>=</mo>
    <mfrac><mrow><msub><mi>U</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>U</mi><mn>1</mn></msub></mrow><mn>2</mn></mfrac>
  </mrow>
</math>
d = 6378.1 (c - f(X + Y)/2), X = ((c - sin c) sin^2(P) cos^2(Q))/(cos^2(c/2)), Y = ((c + sin c) sin^2(Q) cos^2(P))/(sin^2(c/2)), P = (U_1 + U_2)/2, Q = (U_2 - U_1)/2
p = (u1 + u2)/2; q = (u2 - u1)/2; x = (c - Sin[c]) Sin[p]^2 Cos[q]^2/Cos[c/2]^2; y = (c + Sin[c]) Sin[q]^2 Cos[p]^2/Sin[c/2]^2; d = 6378.1 (c - f (x + y)/2)
P := (U1 + U2)/2; Q := (U2 - U1)/2; X := (c - sin(c))*sin(P)^2*cos(Q)^2/cos(c/2)^2; Y := (c + sin(c))*sin(Q)^2*cos(P)^2/sin(c/2)^2; d := 6378.1*(c - f*(X + Y)/2);
p = (u1 + u2)/2; q = (u2 - u1)/2; x = (c - sin(c))*sin(p)^2*cos(q)^2/cos(c/2)^2; y = (c + sin(c))*sin(q)^2*cos(p)^2/sin(c/2)^2; d = 6378.1*(c - f*(x + y)/2);
d = 6378.1(c - f(X + Y)/2), X = (c - sin c) sin^2(P) cos^2(Q)/cos^2(c/2), Y = (c + sin c) sin^2(Q) cos^2(P)/sin^2(c/2), P = (U_1 + U_2)/2, Q = (U_2 - U_1)/2
度分秒(DMS)→ 10進形式の換算
D = d + m/60 + s/3600
D = d + \frac{m}{60} + \frac{s}{3600}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>D</mi>
    <mo>=</mo>
    <mi>d</mi>
    <mo>+</mo>
    <mfrac><mi>m</mi><mn>60</mn></mfrac>
    <mo>+</mo>
    <mfrac><mi>s</mi><mn>3600</mn></mfrac>
  </mrow>
</math>
D = d + m/60 + s/3600
d + m/60 + s/3600
deg := d + m/60 + s/3600;  # D(微分演算子)はMapleの予約語のため、10進の度は deg にしている
D = d + m/60 + s/3600;
D = d + m/60 + s/3600

ChatGPT に聞いて計算してもらう方法

あなたは地理計算のアシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。

2地点の緯度・経度から、地球を扁平率 f = 1/298.257 の回転楕円体として近似するランベルト(Lambert)の方法で、2地点間の距離を求めてください。
手順:各点の緯度を更成緯度 U = atan((1-f)·tanφ) に換算し、a = sin²((U2-U1)/2) + cosU1·cosU2·sin²((λ2-λ1)/2)、中心角 c = 2·atan2(√a, √(1-a))、P = (U1+U2)/2、Q = (U2-U1)/2、X = (c-sin c)·sin²P·cos²Q/cos²(c/2)、Y = (c+sin c)·sin²Q·cos²P/sin²(c/2)、距離(km) = 6378.1·(c - f·(X+Y)/2) です。

点1:北緯35.6895度・東経139.6917度(東京駅付近)
点2:北緯34.6937度・東経135.5023度(大阪駅付近)

距離をkmとマイル(1マイル = 1.60935 km)で示し、計算に使ったコードと実行結果の数値を示してください。

計算ドリル(演習問題)

ランベルトの式そのものは電卓なしでは計算できないため、ここでは土台になる「度分秒⇔10進の換算」「経度差」「緯度1度あたり約111kmの概算」を、自分の手で計算できるようになるための演習問題にしました。
答えと解説は解答ページにあります。


使い方
  1. 1
    数値を入力
    計算したい数値を入力欄に入力します
  2. 2
    計算
    「計算する」ボタンを押します
  3. 3
    結果を確認
    計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
  DataChefの特徴
簡単・無料
無料で回数無制限の変換
専門知識不要、直感的で簡単な操作
会員登録不要
アクセス直後に利用可能
個人情報を登録することなく使用できます
安全・安心
通信を高度に暗号化
「ダウンロード」押下でファイルを自動削除
高速
ストレスのない快適な表示速度・変換速度
透かしなし
ウォーターマークなし
クレジット表記不要
商用利用可能
無料で商用利用可能
商用利用許諾の連絡も不要です