緯度経度から市区町村名は出せる? — 逆ジオコーディングの2つの方式と、測地系を間違えると隣の自治体になる境界

,

緯度経度から市区町村名は出せる? — 逆ジオコーディングの2つの方式と、測地系を間違えると隣の自治体になる境界

緯度経度から市区町村名は出せる? — 逆ジオコーディングの2つの方式と、測地系を間違えると隣の自治体になる境界

出せます。 ただし方式は2つあり、精度の限界も落とし穴も違います。外部サービスに座標を投げる方式と、行政区域の境界ポリゴンを持ってきて点が内側か外側かを自分で判定する方式です。どちらでも共通して効いてくるのが座標の測地系で、旧日本測地系の緯度経度をそのまま投げると数百m動くため、境界付近では平気で隣の自治体が返ります。


2つの方式の違い

A. サービスに問い合わせる B. 境界データで内外判定する
必要なもの 逆ジオコーディングのAPI・サービス 行政区域のポリゴンデータ+判定処理
返るもの 住所文字列(都道府県・市区町村・町丁目など) どのポリゴンに入ったか(=市区町村コード)
強い場面 1件ずつ、住所表記まで欲しいとき 何万件をまとめて分類したいとき
弱い場面 大量件数・オフラインでは使いにくい 町丁目より細かい住所は出せない
データの時点 サービス側の更新に依存する 自分でダウンロードした年度に固定される

業務で数万点のCSVを「市区町村ごとに集計したい」という用途なら、ほぼBになります。Bは仕組みが単純で、どこで間違えたかを自分で追えるのも利点です。

Bで使える境界データ

データ 単位 座標
国土数値情報「行政区域データ」 都道府県・市区町村(政令市は区) 緯度経度(世界測地系)
e-Stat 境界データ(統計GIS) 小地域(町丁・字等)/メッシュ 緯度経度または平面直角座標の系ごと

どちらも市区町村コード(全国地方公共団体コード)を属性として持っているので、判定結果をそのままキーにできます。データ自体の測地系は、国土数値情報の座標系・e-Stat境界データの座標系でそれぞれ確認できます。


内外判定そのものは難しくない

点がポリゴンの内側かどうかは、交差数(レイキャスティング)で決まります。

判定したい点から、一方向(たとえば東)へ半直線を伸ばす
   ↓
ポリゴンの辺と何回交差したか数える
   ↓
奇数回 → 内側 / 偶数回(0回を含む)→ 外側

穴(湖や飛び地の抜き)がある場合は、外環と内環を区別して同じ判定を重ねます。GISのライブラリならこの処理は関数1つですが、中身が単純だからこそ、間違いは入力側に集中します。


落とし穴は入力の座標に集まる

落とし穴 何が起きるか 対処
測地系の不一致 旧日本測地系の緯度経度を世界測地系の境界に当てると数百mずれ、境界付近で隣の自治体になる 判定前に必ず JGD2011/JGD2024 へ変換する
軸順の取り違え (緯度, 経度) と (経度, 緯度) を逆に渡すと、日本の点が地球の反対側の海上へ飛び、どこにも入らない 「どこにも入らなかった点」をまず軸順で疑う
境界未定地域 どの市区町村のポリゴンにも属さない範囲があり、判定が空になる 空を「エラー」ではなく「未定」として残す
飛び地・内包 遠く離れた場所に同じ自治体のポリゴンがある。1点=1ポリゴンの前提が崩れる マルチポリゴンとして扱う
海上・湖上の点 陸域のポリゴンに入らない。船や沖合の観測点で起きる 陸域外と判定し、最近傍の自治体を別処理で当てる
データの時点 合併・境界変更の前後で結果が変わる 使った行政区域データの年度を成果に記録する
形状の精度 境界線は図形としての精度に限界がある。数m単位の帰属判定には使えない 境界から数m以内の点は「要確認」として人が見る

測地系のずれは「数百m」の桁

旧日本測地系(Tokyo Datum)と世界測地系の食い違いは、日本国内でおおむね400〜500m、場所によっては600mを超えます(下図は TKY2JGD の補正量の全国分布。最大612m)。

TKY2JGDによる旧日本測地系から世界測地系への補正量の全国分布図

市区町村の境界は、川や道路に沿って走っていることが多く、400mも動かせば向こう岸に渡ります。ここが逆ジオコーディングで最も多い誤りです。

厄介なのは、間違っていても結果がもっともらしい点です。「隣の市の名前」が返ってくるので、集計表を見ただけでは気づけません。軸順の間違いのように結果が空になるほうが、むしろ発見しやすい失敗です。


手順としてまとめる

  1. 入力座標の測地系を確定する。不明なら、既知点とのずれ量から見当をつける(測地系が分からない座標の見分け方)
  2. 境界データと同じ測地系へ変換する。行政区域データに合わせるなら JGD2011 の緯度経度
  3. 軸順を確認して内外判定する
  4. 判定できなかった点を分類する。海上/境界未定/軸順ミス/範囲外のどれか
  5. 境界から近い点を洗い出す。境界線までの距離を出し、しきい値(たとえば10m)以内は目視確認に回す
  6. 使った境界データの年度と、入力座標の測地系を成果に書き残す

5番と6番を省いた結果が、後から検算できない集計表になります。


GeoConverter Pro でできること

判定そのもの(内外判定)はGISの仕事ですが、その前段の測地系変換はアプリで確認できます。手元の緯度経度が旧日本測地系なのか JGD2011 なのかを見分け、正しい世界測地系の値に直してから境界データへ当てる——この1ステップで、隣の自治体になる誤りは防げます。CSVの一括変換にも対応しています。

https://apps.apple.com/jp/app/geoconverter-pro/id6761740960

出典

  • 国土交通省「国土数値情報ダウンロードサイト」 https://nlftp.mlit.go.jp/
  • 国土交通省「国土数値情報(行政区域)製品仕様書 第4.0版」令和7年3月 https://nlftp.mlit.go.jp/ksj/gml/product_spec/KS-PS-N03-v4_0.pdf
  • 総務省統計局・統計センター「政府統計の総合窓口(e-Stat)」統計GIS 境界データダウンロード https://www.e-stat.go.jp/gis
  • 国土地理院「測量計算サイト」(TKY2JGD等の座標変換) https://vldb.gsi.go.jp/sokuchi/surveycalc/main.html
  • 国土地理院「日本の測地系」 https://www.gsi.go.jp/sokuchikijun/datum-main.html

次に確認する


開発者より: アプリ・Kindle本・公開プロジェクトの一覧は GitHub: amru195704 にまとめています。


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


コメントを残す

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

トップへ戻る