Puedes usar el servicio de Places y la API de Geocoding con el SDK de Maps para Android para buscar regiones y obtener más información sobre lugares. El servicio de Places y la API de Geocoding son alternativas eficaces y estables para obtener IDs de lugar. Si ya usas IDs de lugar, puedes reutilizarlos con un diseño basado en datos aplicable a límites.
Agrega el servicio Places y Geocoding a tu SDK de Maps para las apps para Android de las siguientes maneras:
- SDK de Places para Android es una biblioteca de Android que contiene métodos para devolver información sobre lugares.
- La API de Places muestra información sobre lugares por medio de solicitudes HTTP.
- La clase Geocoder puede geocodificar datos y hacer una geocodificación inversa de forma dinámica a partir de la entrada del usuario.
- La API de Geocoding te permite geocodificar direcciones conocidas y estáticas.
Usa el servicio de Places
Cómo usar Text Search (nueva) para encontrar un ID de lugar
Puedes usar Text Search (nuevo).
La API de REST en la API de Places para obtener un ID de lugar que incluya la región
especificando places.id
en la máscara de campo. El uso de Text Search (nueva) para solicitar únicamente IDs de lugar no genera ningún cargo. Obtén más información.
Por ejemplo, para obtener el ID de lugar de Trinidad, California, puedes hacer lo siguiente: Llamada a la API:
curl -X POST -d '{ "textQuery" : "Trinidad, CA" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.id' \ 'https://places.googleapis.com/v1/places:searchText'
Cómo usar Place Autocomplete para encontrar regiones
Place Autocomplete
en el SDK de Places para Android proporciona una manera conveniente de permitir
tus usuarios buscan regiones. Para configurar el servicio de Place Autocomplete para que solo muestre regiones, usa AutocompleteSupportFragment.setTypesFilter(List)
para establecer el filtro de tipo en PlaceTypes.REGIONS
.
Cómo obtener detalles del lugar de una región
La página de Place Details servicio en el SDK de Places para Android muestra que los datos de una región se pueden bastante útil. Por ejemplo, puedes hacer lo siguiente:
- Buscar IDs de lugar de límite según los nombres de lugares
- Obtener el viewport para aplicar zoom a un límite
- Obtener el tipo de función del límite (por ejemplo,
locality
) - Obtener la dirección con formato, que se resuelve como "Nombre del lugar, estado, país" en la región de Estados Unidos (por ejemplo, “Ottumwa, IA, EE.UU.”).
- Obtener otros datos útiles, como fotos
Cómo usar la API de Geocoding
La API de Geocoding te permite convertir una dirección en coordenadas de latitud y longitud y un ID de lugar, o coordenadas de latitud y longitud o un ID de lugar en una dirección. Los siguientes usos son compatibles con el diseño basado en datos aplicable a límites:
- Usa Geocoding para obtener el viewport de una región.
- Aplica el filtrado de componentes a tu llamada a Geocoding para obtener los IDs de lugar de las áreas administrativas 1-4, la localidad o el código postal.
- Cómo usar la geocodificación inversa para encontrar IDs de lugar por latitud y longitud coordenadas o incluso mostrar los IDs de lugar de todos los componentes de una ubicación.
En el siguiente ejemplo, se usa una dirección (con escape de URL) para realizar una solicitud a la API de Geocoding:
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY
Puedes usar la geocodificación inversa para encontrar los IDs de lugar. En el siguiente ejemplo, la función del servicio de Geocoding muestra los IDs de lugar de todos los componentes de dirección en las coordenadas de latitud y longitud especificadas:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY
Usa la geocodificación inversa con el filtrado de componentes para obtener el componente de dirección de uno o más de los siguientes tipos en la ubicación especificada:
administrativeArea
country
locality
postalCode
En la siguiente función de ejemplo, se muestra cómo se usa el servicio de Geocoding y se agregan restricciones de componentes con geocodificación inversa para obtener todos los componentes de dirección de la ubicación especificada solo para el tipo locality
:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY