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.

  • Cómo restringir google lugares autocompletar a un país específico?
  • Retraso al utilizar PlaceAutoComplete sin utilizar Rest API
  • Google Selector de lugares no se está lanzando en teléfonos Android Mi
  • Restringir resultados de autocompletar por setBoundsBias
  • Se abre Multiple PlaceAutoCompleteFragment cuando se hace clic en él muy rápidamente
  • Cómo obtener una imagen de un lugar de google maps o lugares API
  • Error de entrada duplicada: com / google / android / gms / location / places / zzj.class
  • Google Places Api ordenar por distancia
  • Autocomplete la API del sitio para obtener las coordenadas GPS de la dirección ingresada
  • ¿Cómo obtener 20+ resultados de la API de Google Places?
  • CreateRequestFactory con google-api-java-client-1.15.0-rc
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.