面積を緯度経度のまま計算してはいけない — 平面直角座標系と「縮尺係数の二乗」


面積を緯度経度のまま計算してはいけない — 平面直角座標系と縮尺係数の二乗

面積を緯度経度のまま計算してはいけない — 平面直角座標系と「縮尺係数の二乗」

以前、座標から求めた距離が実測と合わない? — 平面直角座標系の縮尺係数0.9999 という記事で、距離のひずみを扱いました。本記事はその続きにあたる面積編です。距離が縮尺係数 m 倍でひずむなら、面積はどうなるのか——答えは m の二乗倍です。そして、そもそも「緯度経度のまま面積を計算する」のは、距離のとき以上に危険です。

区画の面積、造成範囲、農地の作付面積、ハザード区域の面積。座標データから面積を出す場面は多いのに、計算のよりどころは意外と共有されていません。ここを整理します。


いちばんやってはいけない計算

GeoJSON やCSVで、緯度経度(度単位)の頂点列を持つポリゴンがあるとします。ここで、

経度を x、緯度を y として、そのまま多角形の面積公式に入れる

これをやると、出てくるのは「平方度」という意味のない単位の数値です。そして「1度=約111km だから」と一律に掛けて m² にすると、今度は緯度方向にひずんだ面積になります。

理由は単純で、緯度1度の長さと経度1度の長さが違うからです。

緯度 緯度1度の長さ(概算) 経度1度の長さ(概算)
北緯 26度(沖縄付近) 約 110.7 km 約 100.1 km
北緯 35度(東京付近) 約 110.9 km 約 91.3 km
北緯 43度(札幌付近) 約 111.2 km 約 81.5 km

緯度方向はほぼ一定ですが、経度方向は北へ行くほど短くなります。緯度経度の格子は正方形ではなく、北へ行くほど横につぶれた長方形なのです。この格子をそのまま平面とみなして面積を出せば、東京付近なら経度方向を1割以上も過大に見積もることになります。

詳しい数値感覚は 緯度・経度「1度」は何メートル?(GPRM) で扱っています。


正しい手順:投影座標に変換してから面積を出す

面積を求める手順は、原則としてこうなります。

  1. 頂点の緯度経度を、平面直角座標系(XY)に変換する
  2. XY座標から多角形の面積公式で面積を求める
  3. 必要に応じて縮尺係数の二乗で補正する

平面直角座標系1〜19系の適用範囲マップ

日本国内であれば、対象が属する系(1〜19系)の平面直角座標に変換するのが基本です。系の選び方は 平面直角座標系ガイド系の自動判定 を参照してください。

系をまたぐ範囲の面積は、そのままでは正しく出せません。原点が違う座標系の値を混ぜて計算すると、まったく意味のない数字になります。系をまたぐ広域の面積は、UTM など別の投影を使うか、楕円体上で直接計算する(測地線面積)方法を検討します。UTMとの違いは UTMと平面直角座標系 に整理しました。


座標法(靴ひも公式)で面積を出す

測量で「座標法」と呼ばれる面積計算は、多角形の頂点座標から直接面積を求める方法です。数学ではガウスの面積公式、通称「靴ひも公式」として知られます。

頂点を順に (X₁,Y₁), (X₂,Y₂), …, (Xₙ,Yₙ) とすると、

S = (1/2) × |Σ (Xᵢ · Yᵢ₊₁ − Xᵢ₊₁ · Yᵢ)|

(Xₙ₊₁ = X₁、Yₙ₊₁ = Y₁ として一周させる)

日本の平面直角座標系は X が北方向、Y が東方向で、一般的な数学のx-y平面とは軸の割り当てが逆です。ただし上の式は絶対値を取るので、軸の入れ替えがあっても面積の大きさ自体は変わりません。符号(正負)は頂点を回る向き(時計回り・反時計回り)で決まります。

実装上の注意点をいくつか挙げます。

  • 頂点の順序が命:順番が入れ替わると自己交差した図形になり、面積は意味を失います。
  • 始点と終点の重複:GeoJSON のポリゴンは最後の頂点が最初と同じ座標です。二重に足さないようにします。
  • 穴(内側リング):外側リングの面積から内側リングの面積を引きます。
  • 桁落ち:座標値が大きいまま差を取ると有効桁が失われます。重心や最初の頂点を原点にずらしてから計算すると安定します。この種の話は doubleの精度でmmは守れるか にまとめています。

縮尺係数の二乗 — どのくらい効くのか

平面直角座標系は、原点の子午線上で縮尺係数 m = 0.9999、東西に約90km離れたところで m = 1.0000、適用範囲の端(約130km)で m ≈ 1.0001 という設計になっています。

距離は m 倍でひずむので、面積は m² 倍でひずみます。

位置 縮尺係数 m 面積の係数 m² 実面積1haに対する平面上の面積
原点の子午線上 0.9999 0.99980001 約 9,998.0 m²(−2.0 m²)
原点から約90km 1.0000 1.00000000 10,000.0 m²(±0)
適用範囲の端付近 約1.0001 約1.00020001 約 10,002.0 m²(+2.0 m²)

1ヘクタールあたり最大で約2m²。1万分の2の世界です。

これを「無視できる」と見るか「効く」と見るかは用途次第です。

  • 概況把握・GIS集計:ほぼ無視できます。
  • 登記・地積測量図:そもそも平面直角座標系の座標値で管理されており、その座標から座標法で求めた面積が成果になります。つまり「平面上の面積」が正となる運用です。
  • 土量計算・単価が面積比例する契約:広い面積では効く可能性があるので、どの面積を基準にしているか関係者間で合意しておくのが安全です。

大事なのは数値の大小より、「いま出した面積が、楕円体面の面積なのか、投影平面上の面積なのか」を自覚していることです。この曖昧さは、JGD2011とJGD2024を混ぜて使う落とし穴 と同じ種類の事故を生みます。


GeoJSON・KML の面積を出すときの注意

GeoJSON・KML・GPXの座標系は「WGS84固定」 で書いたとおり、これらの形式は仕様として緯度経度(WGS84)で座標を持ちます。したがって面積を出すには、必ずどこかで投影座標に変換する工程が入ります。

よくある失敗が、Webメルカトル(EPSG:3857)のまま面積を計算することです。Webメルカトルは高緯度ほど大きく引き伸ばされる図法で、日本付近でも面積は実際の1.4倍以上になります。地図表示用の座標系であって、面積計算用ではありません。この座標系の性格は Webメルカトルと平面直角座標系 に整理しています。


GeoConverterPro での使いどころ

GeoConverterPro(GCVP)自体は面積計算ツールではありませんが、面積計算の前工程を担えます。

  • 緯度経度のCSVを、対象地域の平面直角座標系へ一括変換する(CSV変換ガイド
  • 変換先の系を確認する(系を取り違えると面積が桁違いになります)
  • 旧日本測地系(Tokyo)の古い図面座標を現行成果へ変換してから面積を出す(旧測地系の古い図面を変換する

XYに揃えてしまえば、面積そのものは表計算ソフトでも座標法で計算できます。面積計算の精度は、多くの場合「計算式」ではなく「入力座標がどの座標系のどの成果か」で決まります。


まとめ

  • 緯度経度(度)のまま面積公式に入れると、単位も値も意味を持たない
  • 経度1度の長さは緯度によって変わる。北へ行くほど短い
  • 面積は投影座標(日本国内なら平面直角座標系)に変換してから、座標法(靴ひも公式)で求める
  • 距離が m 倍なら面積は m² 倍。原点付近では1haあたり約2m²小さく出る
  • Webメルカトルのまま面積を計算しない。日本付近でも1.4倍以上になる
  • 系をまたぐ範囲は、そのままでは面積を計算できない

出典

  • 国土地理院「平面直角座標系(平成十四年国土交通省告示第九号)」 https://www.gsi.go.jp/LAW/heimencho.html
  • 国土地理院「測量計算サイト」 https://vldb.gsi.go.jp/sokuchi/surveycalc/main.html
  • 国土地理院「作業規程の準則」 https://www.gsi.go.jp/gijyutukanri/gijyutukanri41018.html

関連記事(参考情報)


開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。


お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。


コメントを残す

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

Back to top