Você pode usar o serviço Places e a API Geocoding com o SDK do Maps para Android para pesquisar regiões e conferir mais detalhes sobre lugares. O serviço Places e a API Geocoding são alternativas avançadas e estáveis para acessar IDs de lugares. Se você já usa esses IDs, é fácil reutilizar com o estilo baseado em dados para limites.
Adicione o serviço Places e a Geocoding ao seu SDK do Maps para Android das seguintes maneiras:
- O SDK do Places para Android é uma biblioteca do Android que contém métodos para retornar informações sobre lugares.
- A API Places retorna informações sobre lugares usando solicitações HTTP.
- A classe do geocodificador pode fazer a geocodificação e a geocodificação inversa de forma dinâmica a partir da entrada do usuário.
- Com a API Geocoding, é possível geocodificar endereços estáticos e conhecidos.
Usar o serviço Places
Usar a Pesquisa de texto (nova) para encontrar um ID de lugar
É possível usar a API REST Text Search (novo) na API Places para ter acesso a um ID de lugar que inclua dados de região. Basta especificar places.id
na máscara de campo. O uso da
Pesquisa de texto (novo) para solicitar apenas IDs de lugar não gera
cobranças. Saiba mais.
Por exemplo, para conseguir o ID de lugar de Trinidad, CA, faça a seguinte chamada de 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'
Usar o Place Autocomplete para encontrar regiões
O serviço Places Autocomplete
no SDK do Places para Android oferece uma maneira conveniente para os usuários
pesquisarem regiões. Para configurar o serviço Places Autocomplete para retornar apenas regiões, use AutocompleteSupportFragment.setTypesFilter(List)
para definir o filtro de tipo como PlaceTypes.REGIONS
.
Gerar detalhes de lugares em uma região
O serviço Place Details no SDK do Places para Android retorna dados de uma região e pode ser muito útil. Por exemplo, você pode:
- Procurar IDs de lugares limites com base nos nomes deles.
- Acessar a janela de visualização para aplicar zoom a um limite.
- Encontrar o tipo de recurso do limite (por exemplo,
locality
). - Encontrar o endereço formatado, que é resolvido como "Nome do local, estado, país" na região dos Estados Unidos (por exemplo, "Ottumwa, IA, EUA").
- Localizar outros dados úteis, como fotos.
Usar a API Geocoding
Com a API Geocoding, você pode converter um endereço em coordenadas de latitude e longitude e um ID de local ou converter coordenadas de latitude e longitude ou um ID de local em um endereço. Os exemplos de uso a seguir combinam bem com o estilo baseado em dados para limites:
- Use a geocodificação para acessar a janela de visualização de uma região.
- Aplique a filtragem de componentes à chamada da geocodificação para receber os IDs de lugar das áreas político-administrativas 1-4, regiões administrativas ou códigos postais.
- Use a geocodificação inversa para encontrar IDs de lugar por coordenadas de latitude e longitude ou até mesmo retornar IDs de todos os componentes em um determinado local.
O exemplo a seguir usa um endereço (com codificação de URL) para fazer uma solicitação à API Geocoding:
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY
É possível usar a geocodificação inversa para encontrar IDs de lugar. O exemplo de função do serviço de geocodificação a seguir retorna os IDs de lugar de todos os componentes de endereço nas coordenadas de latitude e longitude especificadas:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY
Use a geocodificação inversa com filtragem de componentes para encontrar o componente de endereço de um ou mais destes tipos no local especificado:
administrativeArea
country
locality
postalCode
O próximo exemplo mostra o uso do serviço de geocodificação, adicionando restrições de componentes com geocodificação inversa para encontrar todos os componentes de endereço no local especificado apenas para o tipo locality
:
https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY