samples places placeautocompletefragment google for example custom autocompletesupportfragment address android google-maps autocomplete google-places-api

placeautocompletefragment - Cómo utilizar la API de Android Places AutocompleteFilter



place autocomplete (4)

Así es como debe configurar los filtros en su API de AutoComplete Place.

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);

Solo algunos tipos son compatibles con Android, obtendrás

AutocompletePredictionBuffer{status=Status{statusCode=NETWORK_ERROR, resolution=null}}

Si utiliza tipos no compatibles como filtros.

vea este enlace para los tipos de filtro soportados ..

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

Estoy tratando de implementar la nueva API de Places para Android en mi aplicación y parece que no puedo encontrar la forma de establecer un filtro para la solicitud. Aquí está mi código.

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);

Como puede ver, seguí la documentación provista por Google here pero no hablan de cómo implementar el filtro, después de leer la Referencia de API , todavía no puedo averiguar cómo implementar la API.

Necesito ayuda para averiguar qué debe entrar como parámetro para AutocompleteFilter.create() para la API. Quiero filtrar los datos por ciudades.

Gracias


De la documentación:

Tabla 3: Tipos soportados en lugar de solicitudes de autocompletado

Puede restringir los resultados de una solicitud de autocompletar de lugar para que sean de un tipo determinado al pasar un parámetro de tipo. El parámetro especifica un tipo o una colección de tipos, como se indica en los tipos admitidos a continuación. Si no se especifica nada, se devuelven todos los tipos. En general, solo se permite un solo tipo. La excepción es que puede mezclar de forma segura los tipos de geocodificación y establecimiento, pero tenga en cuenta que esto tendrá el mismo efecto que no especifica ningún tipo. Los tipos soportados son:

geocode le indica al servicio de autocompletado de lugares que devuelva solo los resultados de geocodificación, en lugar de los resultados de negocios. En general, usa esta solicitud para desambiguar los resultados donde la ubicación especificada puede ser indeterminada. La dirección le indica al servicio de autocompletado del lugar que devuelva solo los resultados de geocodificación con una dirección precisa. En general, utiliza esta solicitud cuando sabe que el usuario buscará una dirección completamente especificada. El establecimiento le indica al servicio de autocompletado del lugar que devuelva solo los resultados comerciales. la colección de tipos (regiones) le indica al servicio de Lugares que devuelva cualquier resultado que coincida con los siguientes tipos: sublocalidad de localidad código postal país_registro_area_level_1 administrative_area_level_2 la colección de tipos (ciudades) indica al servicio de Lugares que devuelva resultados que coincidan con la localidad o administrative_area_level_3.

fuente: https://developers.google.com/places/supported_types

código:

List<Integer> filterTypes = new ArrayList<Integer>(); filterTypes.add( Place.TYPE_ESTABLISHMENT );


Funciona en Google Play Service 9.4.

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


Si usa los servicios de Google Play versión 8.4.0, puede usar la subclase AutocompleteFilter.Builder para crear el filtro.

Es más fácil de usar, ya que no es necesario crear la lista de tipos de lugares manualmente.

mAutocompleteFilter = AutocompleteFilter.Builder(). setTypeFilter(AutocompleteFilter.TYPE_FILTER_CITIES).build(); mGeoLocationAdapter = new GeoLocationAdapter(this, android.R.layout.simple_list_item_1, latLngBounds, mAutocompleteFilter);

Tenga en cuenta que actualmente hay problemas de compatibilidad al instalar los servicios de Google Play versión 8.4.0. Si se encuentra con este problema, puede seguir este thread , pero sugiero volver al método AutocompleteFilter.create() obsoleto estático en desuso si tiene dificultades.