住所ジオコーダーとは
住所ジオコーダーとは、「多摩市落合1-15-2」のような住所を表す文字列から、対応する経緯度(139.428969, 35.625779)を計算するソフトウェアです。住所を入力するとその付近にジャンプする地図アプリケーションや、住所を含むデータセットを地図上にプロットするといった目的で利用されています。
弊社で開発したプログラミング言語Python用住所ジオコーダーのjageocoder および辞書データは、オープンソースのフリーソフト(MITライセンス)として github で公開しています。アプリケーションやサービスに組み込むことで、住所を経緯度に変換したり、住所を正規化する機能を無料で利用できます。バージョン1.1.0から、経緯度から住所を検索するリバースジオコーディングにも対応しました。
住所ジオコーダーには他にも高性能なものがありますが、ほとんどがウェブサービスとして提供されているため、インターネットにアクセスできない環境では利用できません。jageocoder は辞書データごとサーバに配置することで、インターネットに接続できない環境でも利用できます。
辞書データには、国土交通省が公開している「位置参照情報」と、国土地理院が公開している「電子国土基本図(地名情報)住居表示住所」を承認を受けて(測量法に基づく国土地理院長承認(使用)R 2JHs 1122)利用していますので、自由にインストールしてご利用いただけます。
このような特徴から、 jageocoder は次のような場合に適しています。
- 情報保護の対象となる個人情報等を含む住所データを地図にしたい
- 役所・学校など、ネットワークセキュリティが厳しい環境でジオコーディングを利用したい
- 有料のジオコーディングサービスを使う予算を継続して確保できない
ただし無料のデータを利用しているため、以下のような制限があります。
- 都市部以外では住所を処理できない地域が多い
- 都市部でも住居表示(「〇号」)まで処理できない地域が多い
- 建物名は処理できない
都市部以外でも高い精度が必要な場合には jageocoder は向いていません。
インストール・使い方
jageocoderはPython3.6以上で利用可能です。Linux, Windows10, MacOS Xで動作することを確認しています。基本的には次のコマンドでインストールできます。
> pip install jageocoder > python -m jageocoder install-dictionary
コードを書かずにジオコーディングやリバースジオコーディングを試したい場合、次のように実行してください。
> python -m jageocoder search 多摩市落合1-15-2 > python -m jageocoder reverse 139.4290 35.6258
より詳しいインストール方法や使い方などは、オンラインドキュメントを参照してください。
更新履歴
- バージョン1.3.1を公開(2022-06-19)
- 郡名の省略に対応したv1.3.1を公開しました(2022-06-19)
- バージョンアップした場合、辞書を再インストールしてください
- バージョン1.3.0を公開(2022-05-23)
- 住所データの出典情報をデータベースに格納しました
- 住所情報の出典を確認できるようになりました
- v1.2.2よりオンラインドキュメントを公開しました
- バージョン1.2.0を公開(2022-05-05)
- アドレス・ベース・レジストリに対応しました
- v1.2.0には一部の住所で例外が発生するエラーが含まれているため、v1.2.1に更新してください
- バージョン1.1.3を公開(2022-03-21)
- 検索対象の都道府県・市区町村を指定する機能を追加しました(詳細)
- GeoJSON表現を返す機能を追加しました
- バージョン1.1.0を公開(2021-12-29)
- リバースジオコーディング機能を追加しました
- 住所データベースに郵便番号を追加しました
- バージョン1.0.1を公開(2021-12-15)
- 字名の省略ロジックに不具合があったので修正しました
- READMEに「使い方」を追加しました
- オンラインデモアプリのコードを追加しました
- バージョン1.0.0を公開(2021-12-09)
- Geolonia住所データ に対応しました
- 小字の省略に対応しました
- 最適解だけを返す場合の処理を高速化しました
- バージョン0.3.0を公開(2021-11-19)
- 解析が難しい住所への対応を拡充(NII 北本先生のご協力に感謝します)
- コマンドライン辞書管理機能を追加
- バージョン0.2.2を公開(2021-10-05)
- searchNode() 関数および自治体コードを取得する関数などを拡張
- バージョン0.2.1を公開(2021-08-06)
- 長音(「-」)などがハイフンとして認識されない、などの不具合を修正しました
- バージョン 0.2.0 を公開(2021-07-27)
- 辞書のインストール手順を簡略化しました
- Windows10 に対応しました
- 一部のLinuxでデフォルトとなっているPython 3.6.8で動作するように修正しました
- バージョン 0.1.9 を公開(2021-03-11)
- 電子国土基本図(地名情報)「住居表示住所」(2021-02-25版)から辞書を作成し、地理院から使用承認を受けました
- Linux, MacOS で動作確認済み