地球上の緯度経度1秒の距離を計算する:表計算ソフトでも簡単に計算できる・GPSにも応用できる

緯度と経度の情報があれば、距離や方位を計算することができる。精度を高めれば複雑な式になるし、地球は扁平な回転体なので球として計算するとズレが出て来る。そこでGRS80という地球楕円体のモデルによって計算する。

扁平率を考える

前回に説明した、GRS80のパラメータ値では、赤道半径は 6,378,137m である。以降の計算も、GRS80に準拠して進める。日米欧を含む多くの国で公式な測地系に使用されている。

扁平率は、298.257222101分の1 と定められている。

(海図などでは、WGS84という測地系が用いられており、扁平率は、298.257223563分の1となっている。)

扁平率というのは、円や球では値が0となり、つぶれた形になるほど、数値は1に近づく。

回転楕円体の長半径とaとして短半径をbとする。その時の扁平率は、次のようになる。

$$f = \frac{ a-b }{ a } $$

長半径と短半径の比から求めた数値である。

$$ \frac{ a-b }{ a } = 1 – \frac{ b }{ a } $$

長半径が100で短半径が99だとすると、扁平率は、0.01となる。地球の扁平率は、それよりもう少し小さくて、比率で298.257222101分の1なので、おおよそ0.00335このくらいである。

地球を赤道で輪切りにする

念のため赤道に沿って輪切りにした形を調べてみる。赤道の周回でいびつであると計算がさらに難しくなる。さて、地球はどれだけ真円なのかというと、赤道面の扁平率は、91026分の1であるので、それほど大きな値ではない。

ということで、実用上困るような誤差ではないことがわかったので、次の計算に進む。

離心率を求める

楕円の離心率eは、

$$e = \sqrt{1 – \frac {{b}^2}  {{a}^2} } $$

となる。離心率とは、楕円の焦点が中心あるいは原点からどれだけ離れている度合いである。離心率は扁平率から求められる。

離心率の二乗e2を使うことがあるので計算しておく。ここでfは、扁平率をあらわす。

$${e}^2 = \frac { {a}^2 – {b}^2 }  {{a}^2} = f (2 – f) $$

近似値では、0.006 694 380 022 900 788 とされている。下記の表計算ソフトでの計算用の値は0.0066944としている。実用上十分であろう。

経度1秒分の長さを求める

そして、経度1秒分の長さを求めるには次の式になる。

$$ \Delta{l} = \frac {a \cdot cos φ}  { \sqrt { 1 – {e}^2 {sin}^2 φ } } \Delta λ $$

このaは地球の長半径、つまり赤道半径であり、6,378,137mである。eは離心率。近似値を示すと、e=0.081 819 191 042 815 791、e2=0.006 694 380 022 900 788である。

緯度1秒分の長さを求める

経度は、北極周辺と赤道周辺で1度の長さが劇的に異なることは簡単に想像がつく。逆に、緯度1秒の長さは緯度が高くても低くてもあまり変わらないように思っている。それでも最大で1%程度の差がある。

$$ {l} = \frac{\pi}{648000} \cdot   \frac{ a(1-{e}^2) } { (1 – {e}^2 {sin}^2 φ)^{1.5}} $$

表計算ソフトで計算したい

Libre Officeやエクセルで簡単にしたいですよね。

経度1秒の長さ:

東西に渡る長さである。単位はmである。

=PI()/180/3600*6378137*COS(A/180*Pi())  /  SQRT(1-0.0066944*SIN(A/180*Pi())^2)

cosやsinの中の角度Aは北緯をラジアンにして入れるために、180を掛けてπで割っている。難しいことを考えなくてよくて、Aには北緯を普通に度数で入れれば良い。北緯35度ならば、Aには35と設定すれば良いのである。十進法の度数を入れる。35度00分00秒ではなくて、35.11111の形式を使う。

緯度1秒の長さ;

こちらも同様に角度Aは北緯をラジアンにするために変換をしている。上記の数式と同じものである。こちらも同様に、単位はmである。

=(PI()/648000)*6378137*(1-0.0066944) / (1-0.0066944* (SIN(A/180*Pi()))^2)^(1.5)

今回の式では、経度は何も関係していない。赤道面が有意に扁平であるとみなしていないからである。

ここで、A/180*Pi() を Radians(A) というラジアンを計算する関数に置き換えても良い。

1度の距離は?

1秒の距離を60倍にすると1分の距離になり、1秒の距離を3600倍すると1度の距離になる。上記の表計算ソフトの式は単位がmなので、3600かけて1度の距離にすると桁数が増えるだろうから、1000で割れば単位がkmになる。

注意が必要なのは、この距離は経線や緯線に沿った距離であるので、例えば、ある地点から真東に向かった最短距離を表しているわけではない。距離が大きくなればそのズレも大きくなる。平面と球面の違いを考慮して欲しい。

一覧表

5度ずつの計算をして表にしてみた。単位はメートル(m)。

緯度 経度1秒の長さ(m) 経度1度の長さ(m)
90 0.0000 0
85 2.7040 9,735
80 5.3871 19,393
75 8.0283 28,902
70 10.6074 38,187
65 13.1043 47,176
60 15.5000 55,800
55 17.7761 63,994
50 19.9155 71,696
45 21.9019 78,847
40 23.7205 85,394
35 25.3578 91,288
30 26.8017 96,486
25 28.0417 100,950
20 29.0686 104,647
15 29.8751 107,550
10 30.4554 109,639
5 30.8052 110,899
0 30.9221 111,319

 

緯度 緯度1秒の長さ(m) 緯度1度の長さ(m)
90 31.0261 111,694
85 31.0237 111,685
80 31.0167 111,660
75 31.0051 111,618
70 30.9895 111,562
65 30.9702 111,493
60 30.9479 111,412
55 30.9232 111,324
50 30.8970 111,229
45 30.8699 111,132
40 30.8430 111,035
35 30.8168 110,941
30 30.7923 110,852
25 30.7702 110,773
20 30.7512 110,704
15 30.7357 110,649
10 30.7244 110,608
5 30.7174 110,583
0 30.7151 110,574

先ほどの数式で計算したものである。


次の記事:

緯度経度から2地点間の距離を計算する!Google方式とヒュベニ式・GPSから距離計算もできる

前の記事:

GPSのデータから距離を計算するために?基本的なこと・ジオイド・緯度経度から距離を計算

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください