web-dev-qa-db-ja.com

使用方法Android Places API AutocompleteFilter

アプリに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()のパラメーターとして何を入力する必要があるかを理解するのに助けが必要です。データを都市でフィルタリングしたい

ありがとう

16
TanmayP

Google Play Service 9.4で動作します。

AutocompleteFilter filter = new AutocompleteFilter.Builder()
        .setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES)
        .build();
15
Andy Cheng

ドキュメントから:

表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 );
15
Paul Ruiz

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() メソッドに戻すことをお勧めします。

3
JDenais

これは、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}}

サポートされていないタイプをフィルターとして使用する場合。

サポートされているフィルタータイプについては、このリンクを参照してください。

https://developers.google.com/places/supported_types#table

3
SureshCS50