É o 15º aniversário da Plataforma Google Maps: confira as notícias e avisos mais recentes

Controles e gestos

Com o Maps SDK for Android, é possível personalizar como os usuários podem interagir com seu mapa, determinando quais componentes integrados da IU aparecem no mapa e quais gestos são permitidos.

Amostras de código

O repositório ApiDemos no GitHub inclui um exemplo que demonstra o uso de opções de controle e gestos:

Modo Lite para interações simples do usuário

Se você quiser uma versão leve do mapa para interações simples, use o Modo Lite, que mostra uma imagem em bitmap do mapa com um local e nível de zoom especificados. No Modo Lite, os usuários não podem movimentar nem aplicar zoom, e os gestos não funcionam. Para ver detalhes, consulte o guia sobre o Modo Lite.

Controles de IU

A API Maps oferece controles integrados de IU semelhantes àqueles no aplicativo Google Maps de smartphones Android. Para alterar a visibilidade desses controles, use a classe UiSettings, que é recebida de um GoogleMap com o método GoogleMap.getUiSettings. As alterações feitas nessa classe são aplicadas imediatamente ao mapa. Para conferir um exemplo desses recursos, veja a atividade de demonstração das configurações da IU no app de exemplo.

Também é possível ajustar a maioria dessas opções quando o mapa é criado por atributos XML ou usando a classe GoogleMapOptions. Consulte Como configurar o estado inicial para mais detalhes.

Cada controle de IU tem uma posição predeterminada em relação à extremidade do mapa. Para mover os controles da borda superior, inferior, esquerda ou direita, adicione padding ao objeto GoogleMap.

Controles de zoom

A API Maps oferece controles integrados de zoom que aparecem no canto inferior direito do mapa. Eles ficam desativados por padrão, mas podem ser habilitados chamando UiSettings.setZoomControlsEnabled(true).

Controles de zoom

Bússola

A API Maps fornece uma imagem de bússola que aparece no canto superior esquerdo do mapa em circunstâncias específicas. A bússola só é exibida quando a câmera está orientada com uma direção ou inclinação diferente de zero. Quando o usuário clica na bússola, a câmera volta para uma posição com direção e inclinação zero (orientação padrão), e a bússola desaparece pouco tempo depois. Para desativar esse recurso, chame UiSettings.setCompassEnabled(boolean). No entanto, não é possível forçar a exibição permanente dela.

Bússola

Botão "Meu local"

O botão "Meu local" aparece no canto superior direito da tela somente quando a camada "My Location" está ativada. Para ver detalhes, consulte o guia sobre dados de local.

Botão

Seletor de nível

Por padrão, um seletor de nível (andar) é exibido perto da margem central direita da tela quando o usuário visualiza um mapa interno. Quando dois ou mais mapas desse tipo estão visíveis, o seletor de nível é aplicado ao edifício em foco, que normalmente é o mais próximo do centro da tela. Cada edifício tem um nível padrão, que é escolhido quando o seletor é exibido pela primeira vez. Os usuários podem definir outro nível no seletor.

Para desativar ou ativar o controle do seletor de nível, chame GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean).

Isso é útil se você quer substituir o seletor padrão por um personalizado.

Seletor de nível

Barra de ferramentas do mapa

Uma barra de ferramentas aparece por padrão no canto inferior direito do mapa quando o usuário toca em um marcador. Por meio dela, o usuário pode acessar rapidamente o app Google Maps para dispositivos móveis.

Para ativar e desativar a barra de ferramentas, chame UiSettings.setMapToolbarEnabled(boolean).

Em um mapa no Modo Lite, a barra de ferramentas não sai do lugar, independentemente das ações do usuário. Em um mapa totalmente interativo, ela aparece quando o usuário toca em um marcador e desaparece quando o marcador deixa de estar em foco.

A barra de ferramentas exibe ícones que dão acesso a uma visualização de mapa ou uma solicitação de rotas no app Google Maps para dispositivos móveis. Quando o usuário toca em um ícone na barra, a API cria uma intent para iniciar a atividade correspondente no aplicativo.

Barra de ferramentas do mapa

Na captura de tela acima, a barra de ferramentas está no canto inferior direito do mapa. A quantidade de ícones de intent exibidos no mapa dependem do conteúdo do mapa e se o app Google Maps para dispositivos móveis é compatível com a intent resultante.

Gestos do mapa

Um mapa criado com o Maps SDK for Android é compatível com os mesmos gestos do aplicativo Google Maps. No entanto, pode ser que você queira desativar alguns gestos para preservar o estado do mapa. Zoom, movimentação, inclinação e direção também podem ser definidos programaticamente. Consulte Câmera e visualização para mais detalhes. A desativação de gestos não afeta a capacidade de alterar a posição da câmera de maneira programática.

Assim como nos controles de IU, você pode ativar/desativar gestos com a classe UiSettings, que é recebida de um GoogleMap chamando GoogleMap.getUiSettings. As alterações feitas nessa classe são aplicadas imediatamente ao mapa. Para conferir um exemplo desses recursos, veja a atividade de demonstração das configurações da IU no aplicativo de exemplo. Consulte este artigo para saber como instalar.

Também é possível configurar essas opções quando o mapa é criado por atributos XML ou usando a classe GoogleMapOptions. Consulte Como configurar o mapa para mais detalhes.

Gestos de zoom

O mapa responde a diversos gestos que podem mudar o nível de zoom da câmera:

  • Toque duplo para ampliar o nível de zoom em 1 (aumentar zoom)
  • Toque com dois dedos para reduzir o nível de zoom em 1 (diminuir zoom)
  • Gesto de pinça/esticar com dois dedos
  • Zoom com um dedo: toque duplo sem soltar no segundo toque, seguido por uma ação de deslizar para cima (diminuir zoom) ou para baixo (aumentar zoom)

Para desativar os gestos de zoom, chame UiSettings.setZoomGesturesEnabled(boolean). Isso não afeta a capacidade do usuário de utilizar os controles para aumentar e diminuir o zoom.

Gestos de rolagem (movimento)

Um usuário pode rolar (movimentar) o mapa arrastando-o com o dedo. Para desativar a rolagem, chame UiSettings.setScrollGesturesEnabled(boolean).

Gestos de inclinação

O usuário pode inclinar o mapa colocando dois dedos sobre ele e movendo-os juntos para baixo ou para cima. Isso aumenta ou diminui o ângulo de inclinação, respectivamente. Para desativar esses gestos, chame UiSettings.setTiltGesturesEnabled(boolean).

Gestos de rotação

O usuário pode girar o mapa colocando dois dedos sobre ele e fazendo um movimento de rotação. Para desativar esse gesto, chame UiSettings.setRotateGesturesEnabled(boolean).