Search History
この章では検索履歴を追加、取得、削除するための方法を紹介します。
検索履歴
SDKでは各種検索を行った結果を検索履歴として登録する事ができます。登録可能な主な項目は以下の通りです。
- 名前
- 住所
- 登録日時
その他の項目に関してはSearchJP.SearchHistory
を参照して下さい。
検索結果を全て登録すべきではありません。例えば検索結果をルート探索の目的地として使用した場合など、登録が必要な場合のみ登録するようにして下さい。
検索履歴の追加
検索履歴の追加にはSearchJP.addSearchHistory
を使用します。処理の流れは以下の通りです。
SearchJP.AddSearchHistoryRequest
のインスタンスを生成します。- 登録したい履歴を設定します。
- IDは必ず登録する必要があります。削除時にIDをキーに履歴を削除します。
- 設定済みの
SearchJP.AddSearchHistoryRequest
オブジェクトを引数に、SearchJP.addSearchHistory()
を呼び出します。 - 追加が完了すると、Listenerにて追加結果が通知されます。これで追加完了です。
サンプルコードは以下の通りです。
SearchJP.AddSearchHistoryRequest request = new SearchJP.AddSearchHistoryRequest();
List<SearchJP.SearchHistory> historyList = new ArrayList<>();
SearchJP.SearchHistory history = new SearchJP.SearchHistory();
history.setHistoryId("1"); // 必須
history.setName("パイオニア川越");
history.setYomi("パイオニアカワゴエ");
history.setAddress("埼玉県川越市山田25-1");
history.setType(SearchJP.SearchHistory.Type.POI);
history.setTimestamp("2023-02-01T13:59:59Z");
historyList.add(history);
request.setSearchHistoryList(historyList);
SearchJP.getInstance().addSearchHistory(request, new SearchJP.AddSearchHistoryListener() {
@Override
public void onCompleted(SearchJP.ErrorCode errorCode) {
}
});
一度に追加可能な履歴は6件が上限です。
IDにはユニークな値を設定する必要があります。例えばフリーワード検索やジャンル検索の結果を履歴に追加する場合はPlace.getPoiId()
でユニークなIDを取得できるためこのIDを設定する事が推奨されます。
また住所検索の結果を履歴に追加したい場合は住所コードをユニークなIDとして利用する事が可能です。
検索履歴の取得
検索履歴の取得にはSearchJP.getSearchHistory
を使用します。処理の流れは以下の通りです。
SearchJP.GetSearchHistoryRequest
のインスタンスを生成します。- 設定済みの
SearchJP.GetSearchHistoryRequest
オブジェクトを引数に、SearchJP.getSearchHistory()
を呼び出します。 - 取得が完了すると、Listenerにて取得結果が通知されます。これで取得完了です。
サンプルコードは以下の通りです。
SearchJP.GetSearchHistoryRequest request = new SearchJP.GetSearchHistoryRequest();
SearchJP.getInstance().getSearchHistory(request, new SearchJP.GetSearchHistoryListener() {
@Override
public void onCompleted(SearchJP.ErrorCode errorCode, SearchJP.GetSearchHistoryResult result) {
// resultに検索履歴が格納されている
}
});
サンプルコードでは全ての検索履歴を取得します。特定の範囲の検索履歴を取得したい場合はSearchJP.GetSearchHistoryRequest
のsetPos
, setNum
で取得開始位置、個数を指定して下さい。
検索履歴の削除
特定の検索履歴の削除
特定の検索履歴を削除したい場合、削除したい履歴のIDを指定しSearchJP.deleteSearchHistory
を呼び出します。処理の流れは以下の通りです。
SearchJP.DeleteSearchHistoryRequest
のインスタンスを生成します。- 削除したい履歴をのIDリストを設定します。
- 設定済みの
SearchJP.DeleteSearchHistoryRequest
オブジェクトを引数に、SearchJP.deleteSearchHistory
を呼び出します。 - 削除が完了すると、Listenerにて削除結果が通知されます。これで削除完了です。
サンプルコードは以下の通りです。
SearchJP.DeleteSearchHistoryRequest request = new SearchJP.DeleteSearchHistoryRequest();
List<String> removeHistoryIdList = new ArrayList<>();
removeHistoryIdList.add("1");
request.setHistoryIdList(removeHistoryIdList);
SearchJP.getInstance().deleteSearchHistory(request, new SearchJP.DeleteSearchHistoryListener() {
@Override
public void onCompleted(SearchJP.ErrorCode errorCode) {
}
});
特定の検索履歴の全削除
全ての検索履歴を削除したい場合はSearchJP.deleteAllSearchHistory
を呼び出します。サンプルコードは以下の通りです。
SearchJP.getInstance().deleteAllSearchHistory(new SearchJP.DeleteSearchHistoryListener() {
@Override
public void onCompleted(SearchJP.ErrorCode errorCode) {
}
});