Genre Search
この章では目的地を設定するために特定のジャンルに該当する施設を検索(ジャンル検索)するための方法を紹介します。
ジャンル
ジャンル階層
ジャンル検索ではユーザーがジャンル階層リストからジャンルを階層的に選択することを想定しています。
そのためジャンル情報は階層(レベル)化されており、上位のジャンルほど広範なジャンルになります。例えばコンビニエンスストアのジャンル階層は以下の通りです。
買物(レベル1)> コンビニエンスストア(レベル2)> セブンイレブン(レベル3)
ジャンルのレベルは1〜4までとなっており、数字が大きくなるほど詳細なジャンルになります。
ジャンル階層情報取得方法
SearchJP.getGenreList()
の引数に取得したジャンル階層を設定し呼び出して下さい。処理が完了すると、Listenerにて階層情報取得結果が通知されます。
SearchJP.getInstance().getGenreList(1, new SearchJP.GenreListener() {
@Override
public void onCompleted(SearchJP.ErrorCode errorCode, List<SearchJP.Genre> genres) {
// genresにジャンル情報が格納されています
}
});
Note:
設定した階層とその上位の階層全てのジャンル情報が取得できるため、全てのジャンル階層情報を取得する場合はジャンルレベルに4を設定して下さい。
ジャンル名とジャンルキー
ジャンルにはジャンル名(文字列)とジャンルキー(整数値)がそれぞれ定義されています。例えばコンビニエンスストアの場合は以下の通りです。
- ジャンル名:コンビニエンスストア
- ジャンルキー:404
ジャンル検索を行う際にはこのジャンルキーを指定して検索を行うことになります。
おおまかな処理の流れ
ジャンル検索の流れは以下の通りです。
SearchJP.FreewordSearchRequest
のインスタンスを生成します。- 検索したいジャンルのジャンルキーを設定します。
- 検索したい場所の緯度経度、半径(指定しない場合は全国が対象)を設定します。
- 設定済みの
SearchJP.FreewordSearchRequest
オブジェクトを引数に、SearchJP.search()
を呼び出します。 - 検索が完了すると、Listenerにて検索結果が通知されます。これで検索完了です。
SearchJP.FreewordSearchRequest request = new SearchJP.FreewordSearchRequest();
List<Integer> genrekeyList = new ArrayList<>();
genrekeyList.add(404);
request.setGenreKeyList(genrekeyList);
GeoCoordinate position = new GeoCoordinate(35.689595, 139.692221);
request.setPosition(position);
SearchJP.getInstance().search(request, new SearchJP.SearchResultListener() {
@Override
public void onCompleted(SearchJP.ErrorCode errorCode, SearchJP.SearchResult searchResult) {
// searchResultに検索結果が格納されています
}
});