Creación de un filtro de tipo de lugar para la API de Autocompletar de lugar para Android

Esta API parece ser bastante nueva por lo que no hay muchas preguntas sobre ella aquí, ni muchos tutoriales.

Seguí el tutorial de Google y conseguí la API de Autocompletar Android funcionando en mi aplicación. Ahora estoy intentando utilizar el AutocompleteFilter para restringir mis resultados a una cierta región oa ciertos tipos de lugares.

Parece que hay poca o ninguna documentación para un principiante como yo explicando qué hacer.

El AutocompleteFilter requiere un objeto Collection. ¿Cómo puedo cambiar los siguientes valores en enteros?

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

No puedo comentar aún así lo agrego aquí una advertencia para la respuesta anterior:

No todas las constantes de Place están disponibles para filtrar con AutocompleteFilter, sólo hay dos disponibles en Android: Place.TYPE_GEOCODE y Place.TYPE_ESTABLISHMENT ('address' aparecen en la documentación pero no como constantes en Place )

Si se utiliza otra constante (por ejemplo, Place.TYPE_LOCALITY ), la solicitud dará lugar a este error de estado confuso:

 Status{statusCode=NETWORK_ERROR, resolution=null} 

Android Autocompletar de lugar no admite todos los tipos enumerados por el enlace proporcionado en la respuesta anterior.

Desde la versión v8.4, los tipos soportados son proporcionados por AutocompleteFilter como se documenta aquí

 // AutocompleteFilter public static final int TYPE_FILTER_NONE = 0; public static final int TYPE_FILTER_GEOCODE = 1007; public static final int TYPE_FILTER_ADDRESS = 2; public static final int TYPE_FILTER_ESTABLISHMENT = 34; public static final int TYPE_FILTER_REGIONS = 4; public static final int TYPE_FILTER_CITIES = 5; 

Dependiendo de su requerimiento, se puede construir un AutocompleteFilter . Este filtro se puede aplicar a IntentBuilder mediante setFilter() .

Por ejemplo:

  1. Si desea restringir los resultados a un país en particular, puede hacerlo mediante:

     AutocompleteFilter typeFilter = new AutocompleteFilter.Builder().setCountry("IN").build(); Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN).setFilter(typeFilter).build(this); 
  2. Si desea restringir los resultados a un tipo de lugar en particular, podría hacerlo de manera similar cambiando el filtro como:

     AutocompleteFilter typeFilter = new AutocompleteFilter.Builder().setTypeFilter(AutocompleteFilter.TYPE_FILTER_REGIONS).build(); 

El problema fue resuelto por un empleado de Google mismo a quien contacté a través de nuestro portal de soporte de Google Maps for Work.

Aquí hay una lista de Tipos de Lugar con sus contrapartes enteras.

https://developers.google.com/android/reference/com/google/android/gms/location/places/Place

Éstos se pueden utilizar para filtrar el API de Autocompletar de lugar de Android.

  • No se puede seleccionar Lugar con selector de sitios Android
  • No puede obtener un lugar específico de PlaceBuffer
  • Lista de lugares cerrados sin utilizar un objeto de mapa en android
  • Uso de PlaceFilter para Android con la API de Google Places
  • API de Google Places (Android) LatLongBounds no funciona
  • Gire AutoCompleteTextView en un SearchView en ActionBar en su lugar
  • Cómo obtener una imagen de un lugar de google maps o lugares API
  • Autocompletado de la API de Google Places: REQUEST_DENIED
  • Autocomplete la API del sitio para obtener las coordenadas GPS de la dirección ingresada
  • Android Google PlacePicker mostrando texto superpuesto
  • Obtener código de país de PlaceAutocompleteFragment android (API de Google Places)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.