Address Search

この章では目的地を設定するために住所から位置を検索(住所検索)するための方法を紹介します。

住所

住所階層

住所検索ではユーザーが住所階層リストから住所を階層的に選択することを想定しています。

住所検索イメージ図

そのため住所情報は階層(レベル)化されており、上位の住所ほど広範なエリアになります。住所階層と対応エリアは以下の通りです。

レベルエリア
0地方
1都道府県
2市区郡町村
3町大字
4字丁目
5地番戸番
6枝番

例えばレベル0(地方)では 「北海道・東北」「関東」「甲信越・北陸」「東海」「近畿」「中国」「四国」「九州・沖縄」の住所情報が取得できます。

住所コード

住所にはレベル毎に対応する住所コードが付与されています。

レベル住所コード
0住所コードなし
1地方の住所コード(例:'-02')
2都道府県の住所コード(例:'09')
3市区郡町村の住所コード(例:'09#202')
4町大字の住所コード(例:'09#202#00920002')
5地番戸番の住所コード(例:'09#202#00920002#000')
6枝番の住所コード(例:'09#202#00920002#000#103')
Note:

レベル0の場合は住所コードはありません。
レベル1の場合は先頭に'-'が付いた文字列です。
レベル2以上の場合は各階層の住所コードを'#'で繋げた文字列です。

おおまかな処理の流れ

  1. まず最上位階層(地方)の住所情報を取得します。
    • 取得した住所情報をアプリのUI上でユーザーに提示します。
  2. 選択された地方の住所情報に含まれる住所コードを元にさらに下位(都道府県以下)の住所階層情報を取得します。
    • 住所情報にはその住所の位置を表す緯度経度情報が含まれます。その場所を目的地としたい場合はそこで住所検索を終了します。
  3. 下位の住所階層情報が無くなるまで2.を繰り返します。

住所階層(最上位)情報取得方法

住所階層(最上位)情報の取得方法は以下の通りです。

  1. SearchJP.GetLocationListByAddressRequestのインスタンスを生成します。
    • 特に設定は不要です。デフォルトで最上位階層(レベル0)の階層情報を取得します
  2. SearchJP.GetLocationListByAddressRequestオブジェクトを引数に、SearchJP.search()を呼び出します。
  3. 処理が完了すると、Listenerにて住所階層情報の取得結果が通知されます。
SearchJP.GetLocationListByAddressRequest request = new SearchJP.GetLocationListByAddressRequest();

SearchJP.getInstance().search(request, new SearchJP.AddressListener() {
    @Override
    public void onCompleted(SearchJP.ErrorCode errorCode, List<SearchJP.Address> addresses) {
        // addressesに住所階層情報が格納されています
    }
});

住所階層情報取得方法

住所階層情報の取得方法は以下の通りです。

  1. SearchJP.GetLocationListByAddressRequest のインスタンスを生成します。
    • 検索したい住所の親階層で取得した住所情報の住所コードを設定します。
      • 例えば「北海道・東北」地方の都道府県レベルの住所階層情報を取得した場合、住所コードは'-01'(レベル0で取得した「北海道・東北」地方の住所コード)を設定します。
      • 住所階層を指定する必要はありません。住所コードから階層が自動的に判別されます。
  2. SearchJP.GetLocationListByAddressRequestオブジェクトを引数に、SearchJP.search()を呼び出します。
  3. 処理が完了すると、Listenerにて住所階層情報の取得結果が通知されます。
SearchJP.GetLocationListByAddressRequest request = new SearchJP.GetLocationListByAddressRequest();
request.setParentAddressCode("-01");

SearchJP.getInstance().search(request, new SearchJP.AddressListener() {
    @Override
    public void onCompleted(SearchJP.ErrorCode errorCode, List<SearchJP.Address> addresses) {
        // addressesに住所階層情報が格納されています
    }
});