Restrict Autocomplete search to a particular country in Google Places Android API

K.K picture K.K · Oct 26, 2015 · Viewed 19.2k times · Source

My goal is to restrict the Autocomplete results from the Google Places Android API to a particular country (United States) only.

I am using the following API:

        PendingResult<AutocompletePredictionBuffer> results =
                Places.GeoDataApi
                        .getAutocompletePredictions(mGoogleApiClient, constraint.toString(),
                                mBounds, mPlaceFilter);

Looks like LatLngBounds is supposed to do this job.

  1. If yes, then what are the values of LatLngBounds for United States?

  2. Which source did you use to get LatLngBounds for a country?

  3. LatLngBounds is a rectange - so it can include other countries in the result as well. What about that?

  4. Is there a better way to do it?

Answer

Yankee picture Yankee · Dec 8, 2016

Starting from Google Play Services v9.6,you can now set a country filter to your autocomplete suggestions. Please make sure your Play Services version is at least v9.6

AutocompleteFilter autocompleteFilter = new AutocompleteFilter.Builder()
                            .setTypeFilter(Place.TYPE_COUNTRY)
                            .setCountry("US")
                            .build();
Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN)
                                    .setFilter(autocompleteFilter)
                                    .build(this);  

You can change the country codes by using their ISO 'Aplha 2' Codes