住所データに緯度経度を付ける方法|ジオコーディングの仕組みと注意点

住所から緯度・経度を取得する処理をジオコーディングといいます。ABRジオコーダーの実例を使い、座標の付与方法と、町字・住居番号・地番など結果の粒度を確認する重要性を解説します。

住所データに緯度・経度を付ける処理は、地図表示や地域別の集計に役立ちます。ただし、座標が返ったことだけで入力住所が完全に確認されたわけではありません。本記事では、デジタル庁のABRジオコーダーを例に、結果の粒度と確認ポイントを整理します。

ジオコーディングとは

ジオコーディングは、住所などの文字列を位置情報へ対応付ける処理です。住所の表記を解析して参照データと照合し、正規化された住所、緯度・経度、どこまで一致したかを出力します。住所の文字列を整えるだけの作業とは役割が異なります。

住所文字列をジオコーディングして緯度経度を付与する流れ
入力住所を整え、参照データと照合したうえで、緯度・経度と一致した粒度を確認します。

ABRジオコーダーで返る情報

デジタル庁のABRジオコーダーは、入力した住所文字列をアドレス・ベース・レジストリと突合し、正規化した住所文字列、町字ID、緯度・経度などを出力するツールです。住居表示と地番を対象にでき、ローカルのSQLiteデータベースで処理できます。

確認ポイント:緯度・経度が空でないことと、建物入口・配送先・居住実態まで確認できたことは同じではありません。

公開住所3件で実行した結果

ABRジオコーダー公式の入力例を含む千代田区の公開住所を3件、隔離した検証環境のABRジオコーダー(v2.3.1)へ入力しました。結果は住所ごとに異なり、詳細住所まで一致したもの、町字までのもの、未一致文字が残ったものに分かれました。

ABRジオコーダーで住所に緯度経度とマッチングレベルを付けたExcel画面
実際のExcel結果。入力住所ごとに match_level と coordinate_level を分けて確認します。画像をクリックすると拡大できます。

「東京都千代田区紀尾井町1-3」は residential_detail、「東京都千代田区紀尾井町」は machiaza、「東京都千代田区永田町1-10-1」は末尾の -1 が未一致となり residential_block でした。いずれも座標は返っていますが、同じ詳細度ではありません。

この実行では、永田町の入力だけに未一致文字 -1 が残り、score は 0.83 でした。score に独自の合格ラインを設けるのではなく、output、others、match_level、coordinate_level をまとめて見ます。others に残った文字は、照合後に扱いきれなかった入力の一部として確認対象にします。

match_level と coordinate_level を分けて見る

match_level は、入力住所がどの住所階層まで参照データに一致したかを示します。coordinate_level は、返された座標の代表点がどの階層に対応するかを示します。結果を使うときは、住所文字列の一致と、座標の代表する範囲を別々に確認します。

ジオコーディングの住所マッチングレベルと座標代表点レベルを別に確認する図
住所の一致レベルと座標の代表点レベルは、同じ意味として扱いません。

ABRジオコーダーの結果には unknown、prefecture、city、machiaza、machiaza_detail、residential_block、residential_detail、parcel などのレベルがあります。利用目的に必要な粒度に届いていない結果は、地図上に表示できても自動確定には使いません。

代表点を入口や配送地点と誤解しない

住所から得た座標は、その一致レベルに対応する代表点です。建物の入口、ポスト、荷受け場所、敷地境界を示すとは限りません。訪問・配送・現地確認の用途では、必要な精度と別途確認すべき情報を先に決めます。

住所から取得した代表座標と建物入口の位置が同じとは限らないことを示す図
代表座標と実際に必要な入口位置は一致しない場合があります。

緯度経度だけを保存しない

後から結果を確認できるよう、元住所、正規化結果、緯度、経度、match_level、coordinate_level、処理日時またはデータ版を一緒に保存します。必要に応じて未一致文字も残すと、どの住所にどの粒度の座標を付けたかを追跡しやすくなります。

大量データへ付与するとき

大量処理でも、緯度・経度がNULLでないことだけを成功条件にしません。元住所を保存し、表記を整理してからジオコーディングし、一致レベルを記録します。そのうえで用途に必要な粒度かを確認し、届かないものを要確認へ分けます。

座標が返っても住所確認は完了しない

非空の緯度・経度は、住所が完全に正しい、現行住所である、部屋番号まで確認済み、同一人物が居住している、といった事実を保証しません。表記ゆれ、旧住所、建物名・部屋番号を含むデータは、先に分けて確認します。住所クレンジングの考え方、住所正規化と名寄せの違いもあわせて確認してください。

実務での使い方

  1. 元の住所を残したまま、表記を整える。
  2. 正規化結果・未一致文字・一致レベルを別列へ記録する。
  3. 目的に必要な一致レベルだけを採用し、届かないものは要確認へ分ける。
  4. 集計・地図表示・訪問など、用途ごとに代表点の扱いを決める。

郵便番号との整合も確認すると、見直し対象を絞りやすくなります。郵便番号から住所を確認する場合は、郵便番号から住所を調べる方法を参考にしてください。

利用先と外部サービスの条件を確認する

GISや地図サービスへ渡すときは、緯度・経度の列順、数値形式、小数点、利用先が求める座標参照系を確認します。本記事では、ABRジオコーダーの座標参照系を推測で断定しません。外部APIを使う場合は、利用規約、料金、リクエスト上限、データ保存・二次利用条件、個人住所を送信する際のプライバシー条件も事前に確認してください。

住所確認から位置情報へつなげる

住所データの確認では、表記と住所階層を整理してから位置情報へつなげることで、後続の地図表示や地域分析に利用しやすくなります。本当のトコロの現行公開機能として、緯度・経度の付与を提供しているとは本記事では案内しません。

まとめ

ジオコーディングは住所データへ位置情報を付ける有効な手段ですが、座標が返っただけで住所確認は完了しません。正規化結果、未一致文字、match_level、coordinate_levelを分けて残し、目的に必要な粒度に達しない結果は要確認として扱うことが重要です。

住所データを確認する

まずは少量の住所データから、表記の違いと確認が必要な箇所を分けてみてください。

住所データをまとめて確認する

参考情報

デジタル庁:ABRジオコーダーデジタル庁:アドレス・ベース・レジストリ国土地理院:ジオコーディングに関する資料