今回は、IMI住所変換コンポーネントをさらに改造して、昔の地名も検索できるようにしました。
imi-enrichment-address-plus
https://github.com/uedayou/imi-enrichment-address-plus
昔の地名の検索
昔の地名のデータソースとして、大学共同利用機関法人 人間文化研究機構が公開する歴史地名データを利用利用しました。
現在の住所と同じくLevelDBに格納し、緯度経度による逆ジオコーディング検索にも対応しました。
これで、imi-enrichment-address-plusは
- 現在の住所
- 正規化
- 緯度経度で検索(逆ジオコーディング)
- 昔の地名
- 部分一致検索
- 緯度経度で検索(逆ジオコーディング)
の4つの検索が可能になりました。
検索方法
この記事では上記4つの検索のうち、昔の地名の部分一致検索と逆ジオコーディング検索の利用方法を紹介します。
現在の住所の正規化については
IMI住所変換コンポーネントでいろんな住所を正規化してみた
現在の住所の逆ジオコーディングは
IMI住所変換コンポーネントを改造してリバースジオコーディングに対応してみた
もしくはimi-enrichment-address-plusのREADME.mdを見てください。
部分一致検索
最も簡単に試す方法はコマンドラインインタフェースでの検索です。
まず、imi-enrichment-address-plusをグローバルにインストールします。
$ npm install -g https://github.com/uedayou/imi-enrichment-address-plus/releases/download/v1.1.2/imi-enrichment-address-plus-1.1.2.tgz
これでimi-enrichment-address-plus
コマンドが使えるようになるはずです。
通常の住所正規化は-s
オプションを使います。
$ imi-enrichment-address-plus -s 神保町
昔の地名を検索するときは、-s
とともに --old
オプションをつけてください。
住所正規化は該当する1件を返しますが、この検索では文字数が近い最大10件が出力されます。
$ imi-enrichment-address-plus -s 神保町 --old
例えば、上記を実行すると、以下のような結果が出力されます。
{
"@context": "https://imi.go.jp/ns/core/context.jsonld",
"場所": [
{
"@type": "場所型",
"住所": [
{
"@type": "住所型",
"種別": "歴史地名データ",
"ID": "10025110",
"町名": "神保町",
"説明": "「大日本地名辞書」6巻 352頁",
"都道府県": "武蔵",
"都道府県コード": "594",
"市区町村": "神田区",
"市区町村コード": "917"
},
{
"@type": "住所型",
"表記": "東京都千代田区神田神保町二丁目",
"都道府県": "東京都",
"都道府県コード": "http://data.e-stat.go.jp/lod/sac/C13000",
"市区町村": "千代田区",
"市区町村コード": "http://data.e-stat.go.jp/lod/sac/C13101",
"町名": "神田神保町",
"丁目": "2",
"種別": "位置参照情報"
}
],
"地理座標": [
{
"@type": "座標型",
"緯度": "35.695555",
"経度": "139.757500"
}
]
},
...
]
}
検索結果には、住所オブジェクトが2つあり、"種別": "歴史地名データ"
であるほうが昔の地名、"種別": "位置参照情報"
のほうが逆ジオコーディングにより検索された最も近い現在の住所となります。
地理座標
からは緯度経度も得られます。
緯度経度で検索(逆ジオコーディング検索)
部分一致と同じく、通常の逆ジオコーディング検索に--old
つけることで検索対象が昔の地名になります。
$ imi-enrichment-address-plus --lat 35.675551 --lng 139.750413
$ imi-enrichment-address-plus --lat 35.675551 --lng 139.750413 --old
コマンドラインインタフェース以外の使い方
上記で説明したコマンドラインインタフェース以外の使い方として、Web APIとしての利用と、Nodeプログラム上で利用できます。
それぞれの使い方については、imi-enrichment-address-plusのREADME.mdを参照してください。
昔の地名のデータの中身
歴史地名データによると以下の資料をもとに作成されたデータだそうです。
資料名 | 説明 |
---|---|
大日本地名辞書 | 大日本地名辞書は、吉田東伍(1864~1918)が編纂した日本で最初の本格的な地名辞書で、明治33年に初版が発行されました。「歴史地名辞書データ」には、北海道から沖縄(琉球)の53,528件の地名が収録されています。 |
延喜式神名帳 | 延喜式神名帳は、「官社」に指定された神社の一覧であり、延長5年(927年)に編纂されました。これに記載されている神社(式内社)全2,861社のうち、2,842社の位置情報が「歴史地名辞書データ」に収録されました。なお、比定された位置は、必ずしも編纂当時の位置とは限りません。 |
旧5万分の1地形図 | 日本ではじめて精密測量に基づいて作製された5万分の1地形図に含まれる地名252,544件とその緯度・経度が「歴史地名辞書データ」に収録されました。本データの作成に当たっては、国土地理院長の承認を得ています(承認番号 平成30情使、第12号)。対象となった図幅は1,343枚で、明治29年から昭和10年に測量されたものです(一部、例外あり)。なお、緯度・経度は、当時の測地系から世界測地系に変換されています。 |
これによれば、明治時代以前の地名であることがわかります。
上記でも説明しましたが、これら昔の地名に該当する現在の住所があらかじめ割り振っていますので、過去と現在を地理的につなげるような使い方ができると思います。
本モジュールと同じような機能を提供するWebサービスも公開されています。
歴史地名辞書の検索
http://www.eri.u-tokyo.ac.jp/people/ykano/gazetteer/
こちらは今昔マップなどの複数の外部サービスと連携してますし、いくつかの地名や位置を検索したい場合はこちらを利用したほうが良いと思います。
本モジュールはすべてローカル環境で検索を行うので、大量の検索したいデータがある場合、高速に処理が行えることが利点の一つで、自身のサービスに組み込みたい場合にも利用しやすいと思います。
住所・地名周りではかなり便利なツールになったと思いますので、是非活用してもらえればと思います。