Skip to content
koswatana edited this page Jul 31, 2026 · 10 revisions

ABRジオコーダーとは

入力した住所文字列とデジタル庁が整備する アドレス・ベース・レジストリ(ABR: Address Base Registry)を突合し、正規化された住所文字列・町字 ID ・緯度経度等を出力するジオコーダーです。

  • ABRの住所表記、階層に合わせて正規化
  • 住居表示・地番に対応
  • 町字IDの付与
  • ABR座標情報の付与
sequenceDiagram
  participant D as データ
  participant G as ABRジオコーダー
  participant DB as アドレス・ベース・レジストリ

  Note over D: 住所文字列あり・緯度経度なし
  D->>G: 住所文字列<br/>「東京都千代田区紀尾井町1番3号」
  Note over G: 住所正規化・表記ゆらぎを置換
  G->>DB: 正規化した住所要素で突合
  DB-->>G: 町字ID・代表点緯度経度・住所の正規表記
  Note over G: 正規化住所文字列を組み立て・マッチングレベル・緯度経度を付与
  G-->>D: 正規化住所「東京都千代田区紀尾井町1-3」<br/>lg_code:131016 / machiaza_id:0056000<br/>match_level:rsdtdsp_rsdt<br/>経度:139.736389 / 緯度:35.679108
  Note over D: 正規化住所・緯度経度・IDあり
Loading

ユースケース

  • 住所文字列を含む何らかの一覧データを、他のデータとの紐付けや住所文字列の正規化をしたい場合に、機械による自動処理ができる部分を増やす。
  • 位置情報に関するオープンデータのうち座標情報が付与されていないデータや、新規で公開する位置情報に関するオープンデータの整備を支援する。
  • 地図閲覧機能を有するサービスを開発する際に、住所文字列による地図上の参照や検索機能の開発を支援する。

仕様

出力項目

  • ABRジオコーダーは、以下の項目を出力します。
出力項目 説明
matched_address 出力住所文字列
unmatched_address マッチングできなかった文字列
score 参考値
match_level matched_addressのマッチングレベル
coordinates_level 代表点のレベル
lg_code 全国地方公共団体コード
machiaza_id 町字 ID
rsdt_addr_flg 住居表示フラグ
blk_id 街区 ID
rsdt_id 住居 ID
rsdt2_id 住居 2ID
prc_id 地番 ID
pref 都道府県
county 郡
city 市区町村
ward 政令市区
kyoto_st 京都通り名
oaza_cho 大字・町
chome 丁目
koaza 小字
machiaza_dist 同一町字識別情報
blk_num 街区符号
rsdt_num 住居番号
rsdt_num2 住居番号 2
prc_num1 地番 1
prc_num2 地番 2
prc_num3 地番 3

マッチングレベル

  • 出力項目のmatch_levelには、以下のレベルが設定されます。
  • 出力項目のcoordinates_levelには、代表点のレベルが設定されます。
正規化レベル 説明
unknown 不明
pref 都道府県
city 郡 / 市区町村
machiaza 大字・町
machiaza_detail 丁目・小字
rsdtdsp_blk 街区符号
rsdtdsp_rsdt 住居番号
parcel 地番
  • 住所階層とマッチングレベルの対応は以下の通りです。
flowchart LR
  subgraph lpref["pref"]
    p1["都道府県"]
  end
  subgraph lcity["city"]
    c0["郡"] --> c1["市区町村"] --> c2["政令市区"]
  end
  subgraph lmz["machiaza"]
    m1["大字・町"]
  end
  subgraph lmzd["machiaza_detail"]
    d1["丁目"]
    d2["小字"]
  end
  subgraph lblk["rsdtdsp_blk"]
    b1["街区符号"]
  end
  subgraph lrsdt["rsdtdsp_rsdt"]
    r1["住居番号"]
  end
  subgraph lprc["parcel"]
    g1["地番"]
  end
  bld["建物名等(方書)"]

  p1 --> c0
  p1 --> c1
  c1 --> m1
  c2 --> m1
  m1 --> d1
  m1 --> d2
  m1 --> b1
  m1 --> g1
  d1 --> b1
  d1 --> g1
  d2 --> g1
  b1 --> r1

  c1 --> d2
  c2 --> d2
  c1 --> g1
  d2 --> b1

  r1 --> bld
  g1 --> bld

  classDef lvl fill:none,stroke:#999,stroke-dasharray: 3 3
  class lpref,lcity,lmz,lmzd,lblk,lrsdt,lprc lvl
  classDef out stroke-dasharray: 5 5
  class bld out
Loading
  • 矢印は照合が進む順序を表します。入力がそこで尽きた状態が、その住所の match_level になります。
  • 建物名等(方書)はABRの照合対象ではなく、unmatched_address に残ります。

スコア

  • scoreは候補の並べ替えに使う参考値です。表記のゆらぎを補って照合した場合に 1 未満、match_levelがunknownのときは -1 になります。
  • マッチの正しさは表しません。下の表のように、ABRに存在しない番地が残っていてもscoreは 1 になります。採否の判断には使わず、match_levelを見てください。
入力 matched_address unmatched_address score match_level
東京都千代田区紀尾井町1番3号 東京都千代田区紀尾井町1-3 なし 1 rsdtdsp_rsdt
東京都千代田区紀尾井町1番3号ガーデンテラス 東京都千代田区紀尾井町1-3 ガーデンテラス 1 rsdtdsp_rsdt
東京都千代田区紀尾井町999-999 東京都千代田区紀尾井町 999-999 1 machiaza
東京都千代田区紀尾伊町1-3 東京都千代田区紀尾井町1-3 なし 0.67 rsdtdsp_rsdt
存在しない架空市あいうえお町9-9 なし 存在しない架空市あいうえお町9-9 -1 unknown

正規化仕様

API仕様

ABRジオコーダーロードマップ

V1 V2 V3(beta)
町字 ID の付与 ✓ ✓ ✓
住所文字列正規化(町字・住居表示) ✓ ✓ ✓
住所文字列正規化(地番) - ✓ ✓
アドレスから緯度経度 ✓ ✓ ✓
緯度経度からアドレス - - ✓(試験的)
廃止されたアドレス - - -

V1(2023年6月)

  • ABRの町字、住居表示(街区符号・住居番号)に対応した、正規化住所文字列、町字ID、座標を出力
  • CLIのOSS公開

V2(2024年7月)

  • ABRの地番マスターのジオコーディングに対応
  • API, Web Client のOSS公開

v2.1(2024年11月)

  • 京都の通り名に対応

V3

  • Go による実装に刷新
  • ABR データ管理 CLI(abrdb)とジオコーダー(abrg)を分離
  • リバースジオコーディング(緯度経度からアドレス)に試験的に対応