アプリにAndroidの新しいPlaces APIを実装しようとしていますが、リクエストにフィルターを設定する方法がわかりません。ここに私のコードを示します。
_LatLng southWest = new LatLng(85, -180);
LatLng northEast = new LatLng(-85, 180);
LatLngBounds bounds = new LatLngBounds(southWest, northEast);
AutocompleteFilter filter = AutocompleteFilter.create(WHAT SHOULD GO HERE?);
PendingResult result = Places.GeoDataApi.getAutocompletePredictions(mGoogleApiClient,
search.getText().toString(), bounds, filter);
_
ご覧のとおり、google here が提供するドキュメントに従っていますが、 APIリファレンス を読んだ後、フィルターの実装方法について話していません。 APIを実装します。
APIのAutocompleteFilter.create()
のパラメーターとして何を入力する必要があるかを理解するのに助けが必要です。データを都市でフィルタリングしたい
ありがとう
Google Play Service 9.4で動作します。
AutocompleteFilter filter = new AutocompleteFilter.Builder()
.setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES)
.build();
ドキュメントから:
表3:インプレースオートコンプリートリクエストでサポートされるタイプ
プレイスオートコンプリートリクエストの結果を特定のタイプに制限するには、typesパラメータを渡します。以下のサポートされているタイプにリストされているように、パラメーターはタイプまたはタイプコレクションを指定します。何も指定されていない場合は、すべてのタイプが返されます。通常、許可されるタイプは1つだけです。例外として、ジオコードと施設のタイプを安全に混在させることができますが、タイプを指定しないのと同じ効果があることに注意してください。サポートされているタイプは次のとおりです。
geocodeは、ビジネスの結果ではなくジオコーディングの結果のみを返すようにプレイスオートコンプリートサービスに指示します。通常、このリクエストを使用して、指定された場所が不確定である可能性がある結果を明確にします。 addressは、プレイスオートコンプリートサービスに、正確な住所を持つジオコーディング結果のみを返すように指示します。通常、このリクエストは、ユーザーが完全に指定されたアドレスを探していることがわかっている場合に使用します。設立はプレイスオートコンプリートサービスにビジネス結果のみを返すように指示します。 (地域)タイプのコレクションは、次のタイプに一致する結果を返すようにプレイスサービスに指示します:地域サブローカリティpostal_code国administrative_area_level_1 administrative_area_level_2(都市)タイプのコレクションは、プレイスサービスに、地域または行政管理エリアレベル3に一致する結果を返すように指示します。
ソース: https://developers.google.com/places/supported_types
コード:
List<Integer> filterTypes = new ArrayList<Integer>();
filterTypes.add( Place.TYPE_ESTABLISHMENT );
Google Play開発者サービスバージョン8.4.0を使用する場合、サブクラス AutocompleteFilter.Builder を使用してフィルターを作成できます。
プレイスタイプのリストを手動で作成する必要がないため、より簡単に使用できます。
mAutocompleteFilter = AutocompleteFilter.Builder().
setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES).build();
mGeoLocationAdapter = new GeoLocationAdapter(this,
Android.R.layout.simple_list_item_1,
latLngBounds,
mAutocompleteFilter);
Google Play開発者サービスバージョン8.4.0をインストールする場合、現在互換性の問題があることに注意してください。この問題が発生した場合は、 thread に従うことができますが、問題が発生した場合は、静的な非推奨の AutocompleteFilter.create() メソッドに戻すことをお勧めします。
これは、AutoComplete Place APIでフィルターを設定する方法です。
List<Integer> filters = new ArrayList<Integer>();
filters.add(Place.TYPE_ADMINISTRATIVE_AREA_LEVEL_1);
mAutocompleteFilter = AutocompleteFilter.create(filters);
mGeoLocationAdapter = new GeoLocationAdapter(this,
Android.R.layout.simple_list_item_1,
latLngBounds,
mAutocompleteFilter);
Androidではいくつかのタイプのみがサポートされています。
AutocompletePredictionBuffer{status=Status{statusCode=NETWORK_ERROR, resolution=null}}
サポートされていないタイプをフィルターとして使用する場合。
サポートされているフィルタータイプについては、このリンクを参照してください。