API de sitios para Android: obtenga las líneas de addres de Place.getAddress ()

En mi aplicación para Android, encuentro la dirección de ubicaciones usando Geocoder.getFromLocation() . Puedo obtener un objeto de Address y obtener las líneas de dirección de una dirección con Address.getAddressLine() .

Sólo estoy interesado en la primera línea de dirección, que puedo obtener fácilmente con Address.getAddressLine(0) .

Además, la aplicación permite al usuario elegir ubicaciones mediante PlaceAutocomplete . Cuando el usuario elige una ubicación, recibo un objeto Place y puedo obtener la dirección por Place.getAddress() .

El problema es, Place.getAddress() devuelve una cadena en lugar de un objeto de Address . Esta cadena contiene la dirección completa, por lo que no puedo obtener fácilmente la primera línea de dirección, como lo hice con el objeto de Address .

¿Cómo debo encontrar la primera línea de dirección de la cadena devuelta por Place.getAddress() ?

2 Solutions collect form web for “API de sitios para Android: obtenga las líneas de addres de Place.getAddress ()”

Respuesta breve es que no se pueden obtener datos estructurados de esa API . Por alguna razón, Google ha decidido que no es algo que la gente querría en Android.

Un colega mío ha registrado este problema con Google para solicitar el mismo nivel de información que se proporciona a los usuarios de iOS y JavaScript:

  • Problema 10019: exponer componentes de dirección en objeto Place

Una respuesta más larga es que sus opciones son:

  1. Te imaginas una manera inteligente de analizar esa cadena. Desafortunadamente, la actual estructura de la calle / suburbio / ciudad / provincia no es consistente en diferentes áreas (por ejemplo, Ciudad del Cabo en Sudáfrica tiene una estructura de oraciones diferente a Johannesburgo en Sudáfrica). Así que sus reglas de análisis deben ser muy inteligentes.
  2. Utiliza una API de Google diferente. La API de JavaScript proporciona datos estructurados para la llamada relacionada. Esta pregunta relacionada muestra más detalles sobre esa API. Desafortunadamente, Google recomienda no usar esta técnica.

Creo que Google sólo tiene la intención de darnos esta frase con el fin de elegir una dirección, en lugar de para nosotros para obtener información estructurada sobre la dirección. Para obtener mejor información, necesita obtener los valores lat / lng consultando el ID de lugar.

A partir de esos valores lat / lng, puede hacer una geolocalización inversa para obtener la dirección correcta.

Desafortunadamente en esta técnica, las API de Google nos fallan una vez más.

  • A menudo se puede tomar la dirección A, resolverla a un lat / lng dado, y resolver que a otra dirección B, que podría estar cerca de A, pero no lo es. Las llamadas de la API no son conmutativas como cabría esperar

He tenido una buena cantidad de experiencia con estas llamadas, y me gustaría que hubiera otra respuesta que podría proporcionar. Si desea seguir con las API de ubicación de Google, no podrá obtener lo que está pidiendo.

Ahora es imposible sólo con esta API. Pero puede usar Geocoder con latitud y longitud desde el objeto Place

  • Cómo personalizar el diseño del cuadro de diálogo de widget de PlaceAutocomplete a lugares de la lista
  • Código de estado de autocompletado de los lugares 9001
  • El selector de lugar no se abrirá en mi teléfono
  • Cómo utilizar mapas de google coloca autocompletar api y sugerencias de lista en un listview y no un menú desplegable
  • Cómo analizar la dirección de Google Places GeoDataApi para Android, (address_components missing)
  • Android google maps, google lugares, latitud norte supera el sur latitiude
  • PlaceAutoCompleteFragment en android no muestra sugerencias y se cierra después de ingresar la primera letra
  • ¿Cómo obtener 20+ resultados de la API de Google Places?
  • API de Android Places: Servicios de Google Play desactualizados en el emulador
  • API de Google Places en Android: API_KEY para usuarios individuales
  • Cómo utilizar el API AutocompleteFilter de Android Places
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.