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.
- Cómo cambiar el tamaño del texto en lugares autocompletefragment en android?
- Limitar el resultado en el país con Autocompletar de Google Place?
- API de sitios para Android: obtenga las líneas de addres de Place.getAddress ()
- Obtener Lat Lang de un place_id devuelto por autocompletar lugar api
- Mostrar la ubicación actual y los lugares cercanos y la ruta entre dos lugares con la API de Google Maps en Android
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
- Google Maps Android API v2, título del marcador / muestra incorrecta del fragmento
- Cómo configurar el texto del cuadro de diálogo de google api en el idioma predeterminado de la aplicación
- ¿Cómo obtener resultados específicos del país en la API de Google Places para AutocompletePredictions en Android?
- Uso de la biblioteca de Google Places en la aplicación nativa de Android
- Autocompletar texto google lugares api
- Cómo configurar "Tipos" en Google Place PlacePicker en Android?
- API de Android Places: Servicios de Google Play desactualizados en el emulador
- Filtrar los resultados de autocompletar de Google Places por país
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:
-
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);
-
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.
- Weird parse crash android – Intenta invocar el método virtual 'int java.lang.Integer.intValue ()
- Obtener una marca de tiempo larga del selector de fechas onDateSet