Skip to content

Latest commit

 

History

History
344 lines (251 loc) · 12 KB

README.ja.md

File metadata and controls

344 lines (251 loc) · 12 KB

abr-geocoder (デジタル庁 アドレス・ベース・レジストリ ジオコーダー)

🚨 Version 2.0 から Version 2.1 へのアップグレード

  • データベースの構造に大きな変更があり下位互換性がないため、abrgディレクトリ (デフォルトでは ~/.abr-geocoder) を削除して、もう一度 abrg download を行ってください。

説明

入力した住所文字列とデジタル庁が整備する アドレス・ベース・レジストリを突合し、正規化された住所文字列・町字 ID ・緯度経度等を出力するジオコーダーです。 日本国内の住所表記を分析し、揺れを吸収して、階層に合わせて正規化した結果を出力します。

特徴

  • 日本国内の住所を対象としたジオコーダ
  • アドレス・ベース・レジストリに基づいて住所表記、階層に合わせて正規化
  • 住居表示地番 に対応。
  • SQLiteを使用。サーバー内でジオコーディングすることが可能。
  • マルチスレッドによる高速処理。
  • csv, json, geojson, ndjson, ndgeojson, simplified の6つの出力形式をサポート。

ユースケース

  • コマンドとして利用可能
    • 標準入力・標準出力によるパイプライン
    • ファイルによる入出力
  • RESTサーバとして利用可能
  • Node.jsのライブラリとして利用可能
    • 個別リクエスト、Streamをサポート
  • 京都の通り名による検索(※一部未対応)

できないこと

  • ランドマーク(有名な施設名など)による検索
  • 郵便番号による検索
  • アルファベット(英語表記)による検索

インストール

  • グローバルインストール
npm install -g @digital-go-jp/abr-geocoder
abrg  # 実行できることを確認
  • ローカルインストール
npm install @digital-go-jp/abr-geocoder
npm link
abrg  # 実行できることを確認

abrg downloadコマンド

アドレス・ベース・レジストリからジオコーディングに必要なデータセットをダウンロードし、SQLiteを使ってデータベースを構築します。

abrg download [options]
  • 地域を指定してダウンロード

    特定の都道府県や市町村を指定して、地域を限定したデータベースを構築することが可能です。これによりダウンロードするデータサイズを抑え、データベースを早く構築することが出来るようになります。

    地域を指定するコードは、全国地方公共団体コードを指定します。 複数の地域を指定する場合は、半角空白で区切ります。

    # 東京都のデータをダウンロードする
    abrg download -c 130001
    
    # 東京都と神奈川県のデータをダウンロードする
    abrg download -c 130001 140007
    
    # 千代田区のデータをダウンロードする
    abrg download -c 131016
  • ディレクトリの変更

    データセットファイルをダウンロードしたり、データベースを保存するディレクトリを変更することができます。 デフォルトでは $HOME/.abr-geocoder に保存します。

    abrg download -d (データを保存するディレクトリへのパス)
  • プログレスバーを非表示 silentオプションを指定すると、プログレスバーを表示しません。
    abrg download --silent
  • デバッグ情報の表示 処理が完了したとき、処理に掛かった時間を表示します。
    abrg download --debug

abrg update-checkコマンド

データのアップデートを確認します。ローカルにデータがある場合は、データベースに含まれる市区町村を対象にアップデートチェックを行ないます。新しいデータがある場合には、続けてダウンロードすることが可能です。

abrg update-check [options]
  • yes/no を事前に指定 利用可能な更新データがある場合、続けてダウンロードを行うかどうかを事前に指定しておくことができます。
    # 続けてダウンロードを行う場合
    abrg update-check --yes
    
    # 続けてダウンロードを行わない場合
    abrg update-check --no
  • プログレスバーを非表示 silentオプションを指定すると、プログレスバーを表示しません。
    abrg update-check --silent
  • ディレクトリの変更

    データベースを保存するディレクトリを指定します。デフォルトでは $HOME/.abr-geocoder です。

    abrg update-check -d (データを保存するディレクトリへのパス)
  • デバッグ情報の表示 処理が完了したとき、処理に掛かった時間を表示します。
    abrg update-check --debug

abrgコマンド

入力した住所文字列をデータベースと突合し、正規化された住所文字列・町字 ID・緯度経度等を出力します。 (ジオコーディングを行います。)

$ abrg <inputFile> [<outputFile>] [options]
  • <inputFile>

    コマンドにデータを入力する方法を指定します。

    • ファイルへのパスを指定した場合 指定されたテキストファイルをジオコーディングします。 1行単位(1行につき1つのアドレス)で記入してください。

      例:

      abrg ./sample.txt
      

      sample.txt

      東京都千代田区紀尾井町1-3
      東京都千代田区永田町1-10-1
      ...
      東京都千代田区永田町一丁目7番1号
      
    • "-" を指定した場合 標準入力からデータを受け取ります。

      例:

      echo "東京都千代田区紀尾井町1-3 東京ガーデンテラス紀尾井町 19階、20階" | abrg -
      
  • <outputFile>

    処理結果の出力先を指定します。省略された場合は標準出力(stdout)に出力されます。

    • ファイルへのパスを指定した場合 指定されたファイルに処理結果を出力します。出力形式は `--format` オプションに基づきます。

      例:

      abrg ./input.txt ./output.json
      
    • 省略した場合 省略された場合は標準出力(stdout)に出力されます。

      例:

      cat ./sample.txt | abrg - | jq
      
  • 出力形式の変更

    -f, --format オプションで出力書式を変更できます。デフォルトはjsonです。

    format 説明
    csv カンマ区切りのcsv形式で結果を出力します
    simplified 出力フィールドを限定した、カンマ区切りのcsv形式で結果を出力します
    json JSON形式で結果を出力します
    ndjson NDJSON形式で結果を出力します
    geojson GeoJSON形式で結果を出力します
    ndgeojson NDGeoJSON形式で結果を出力します
  • ワイルドカード文字を指定する 任意の1文字をワイルドカードとして扱うことができます。 utf-8で表現できない旧漢字などを●(黒丸)などに変換した場合などに、指定すると便利です。デフォルトは`?`です。

    例:

    echo "東京都町●市森野2-2-22" | abrg - --fuzzy "●"
    
  • プログレスバーを非表示 silentオプションを指定すると、プログレスバーを表示しません。
    abrg ./input.txt ./output.txt --silent
  • ディレクトリの変更

    データベースを保存するディレクトリを指定します。デフォルトでは $HOME/.abr-geocoder です。

    abrg ./input.txt ./output.txt  -d (データを保存するディレクトリへのパス)
  • デバッグ情報の表示 処理が完了したとき、処理に掛かった時間を表示します。 また入力された住所文字列にマッチした各テーブルの主キーの情報が出力されます。
    abrg ./input.txt ./output.txt --debug
  • ジオコーディング対象

    --target オプションで住居表示・地番のジオコーディング対象を変更できます。デフォルトはallです。

    format 説明
    all 住居表示と地番のデータの両方を調べます。住居表示の結果が優先されます
    residential 住居表示データのみを調べます
    parcel 地番データのみを調べます

abrg serveコマンド

ジオコーダをREST APIサーバーとして起動します。

abrg serve [options]

リクエスト方法

curl http://localhost:3000/geocode?address=東京都千代田区紀尾井町1-3
  • ポート番号の変更

    REST APIサーバーのポート番号を変更します。デフォルトは 3000 です。

    abrg serve -p 8080
  • ディレクトリの変更

    データベースを保存するディレクトリを指定します。デフォルトでは $HOME/.abr-geocoder です。

    abrg serve  -d (データを保存するディレクトリへのパス)
  • リクエスト・パラメータ

    HTTP/GETでリクエストを行います。以下のパラメータが指定可能です。

    | パラメータ | 必須 | 説明 | |-------------|-------------------------------------------------| | address | Y | ジオコーディングしたい住所文字列。必須パラメータ | | target | | 検索対象(all, residentaial, parcel) | | format | | 結果の出力形式 | | fuzzy | | ワイルドカードとして使用する1文字 |