Biblioteca de utilitários do SDK do Maps para Android

Procurando recursos avançados para incluir nos seus mapas? A Biblioteca de utilitários do SDK do Maps para Android é um recurso de código aberto útil com várias classes para você usar em diversos tipos de apps. O repositório GitHub inclui as classes de utilitários e um app de demonstração com o uso de cada classe.

Neste vídeo, Chris Broadfoot fala sobre a biblioteca, enfatizando a decodificação de polilinhas, geometria esférica e ícones de balão.

Configuração rápida

Para instalar a biblioteca de utilitários do SDK do Maps para Android, siga o guia de configuração.

Os utilitários

Mapa com uma camada GeoJSON

Importar GeoJSON para seu mapa

Você pode armazenar recursos no formato GeoJSON e usar esse utilitário para renderizá-los como uma camada sobre um mapa. Chame addLayer() para adicionar seus dados GeoJSON ao mapa. Você também pode adicionar recursos individuais chamando addFeature(), enviando um objeto GeoJsonFeature.

Para ver mais detalhes, consulte a documentação do utilitário GeoJSON do Google Maps para Android.

Mapa com uma camada KML

Importar KML para seu mapa

O uso desse utilitário permite converter objetos KML em formas geográficas e renderizá-las como uma camada sobre um mapa. Chame addLayerToMap() para adicionar a camada ao mapa. Você pode acessar as propriedades de um objeto KML chamando getProperties() em qualquer marcador de local, GroundOverlay, documento ou pasta.

Para ver mais detalhes, consulte a documentação do utilitário KML do Google Maps para Android.

Mapa com um mapa de calor

Adicionar mapas de calor ao seu mapa

Os mapas de calor permitem que os visualizadores compreendam com mais facilidade a distribuição e a intensidade relativa de pontos de dados em um mapa. Em vez de colocar um marcador em cada localização, eles usam cores e formas para representar a distribuição dos dados. Crie um HeatmapTileProvider, passando uma coleção de objetos LatLng que representam pontos de interesse no mapa. Depois, crie um novo TileOverlay, transmitindo o provedor de blocos do mapa de calor e adicione a sobreposição de blocos ao mapa.

Para ver mais detalhes, consulte a documentação do utilitário de mapa de calor do Google Maps para Android.

Mapa com ícones de balão

Personalizar marcadores com ícones de balão

Adicione um IconGenerator para exibir snippets de informações nos seus marcadores. Com esse utilitário, os ícones de marcadores têm uma aparência semelhante a janelas de informações, permitindo que o próprio marcador tenha texto e outro conteúdo. A vantagem é a possibilidade de manter mais de um marcador aberto ao mesmo tempo, enquanto que apenas uma janela de informações pode ser aberta de cada vez. Também é possível aplicar estilo aos marcadores, alterar a orientação do marcador e/ou conteúdo e alterar a imagem/9-patch de segundo plano dos marcadores.

Mapa com marcadores em cluster

Gerenciar clusters de marcadores

ClusterManager ajuda a gerenciar vários marcadores em diferentes níveis de zoom. Isso significa que é possível colocar mais marcadores em um mapa sem dificultar a leitura. Quando um usuário visualiza um mapa em um nível de zoom alto, os marcadores individuais são exibidos no mapa. Quando o usuário diminui o zoom para um nível mais baixo, os marcadores se reúnem em clusters, facilitando a visualização.

Para ver mais detalhes, consulte a documentação do utilitário de clustering de marcadores do Google Maps para Android.

Mapa com várias camadas

Adicionar várias camadas ao mesmo mapa

É possível exibir elementos de GeoJSON, KML e clusters, além dos seus próprios marcadores, polilinhas e polígonos, no mesmo mapa. Essas camadas também podem ser interativas com a adição de um listener de cliques em cada camada. Basta instanciar as classes MarkerManager, GroundOverlayManager, PolygonManager e PolylineManager e passá-las para os construtores de GeoJsonLayer, KmlLayer, ClusterManager quando você configurá-los. Você pode usar as classes Manager acima diretamente para adicionar seus próprios marcadores, polilinhas e polígonos ao mapa.

Para ver mais detalhes, consulte a documentação da demonstração de várias camadas no Google Maps para Android.

Mapa com uma polilinha codificada

Codificar e decodificar polilinhas

PolyUtil é útil para converter polilinhas e polígonos codificados em coordenadas de latitude/longitude e vice-versa.

No Google Maps, as coordenadas de latitude e longitude que definem uma polilinha ou um polígono são armazenadas como uma string codificada. Consulte a explicação detalhada da codificação de polilinhas. Essa string codificada é recebida como resposta de uma API do Google, como a API Directions.

Você pode usar o PolyUtil na Biblioteca de utilitários do SDK do Maps para Android e codificar uma sequência de coordenadas de latitude/longitude ("LatLngs") em uma string de caminho codificada e para decodificar uma string de caminho codificada para uma sequência de LatLngs. Isso garante a interoperabilidade com os serviços Web das APIs do Google Maps.

Distância calculada entre dois pontos em um mapa

Calcular distâncias, áreas e rumos usando geometria esférica

Usando os utilitários de geometria esférica no SphericalUtil, é possível calcular distâncias, áreas e cabeçalhos com base em latitudes e longitudes. Veja a seguir alguns dos métodos disponíveis:

  • computeDistanceBetween(): retorna a distância, em metros, entre duas coordenadas de latitude/longitude.
  • computeHeading(): retorna o rumo, em graus, entre duas coordenadas de latitude/longitude.
  • computeArea(): retorna a área, em metros quadrados, de um caminho fechado no planeta.
  • interpolate(): retorna as coordenadas de latitude/longitude de um ponto posicionado a uma determinada fração da distância entre dois pontos especificados. Esse método pode ser usado, por exemplo, para animar um marcador entre dois pontos.

Consulte a documentação de referência para ver uma lista completa de métodos no utilitário.