Controles e gestos

Selecione a plataforma: Android iOS JavaScript

Com o SDK do Maps para Android, você personaliza como os usuários podem interagir com seu mapa, determinando quais componentes integrados da interface aparecem no mapa e quais gestos são permitidos.

Exemplos de código

O repositório ApiDemos (link em inglês) 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 implementar o zoom, e os gestos não funcionam. Para ver detalhes, consulte o guia sobre o Modo Lite.

Controles de interface

A API Maps oferece controles integrados de interface semelhantes aos do app Google Maps em 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 interface 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 ver mais detalhes.

Cada controle de interface 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 "Meu local"

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 é implementado 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 aparece 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. Com ela, 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 da ação do usuário. Em um mapa totalmente interativo, ela aparece quando o usuário toca em um marcador e desaparece quando o marcador sai do foco.

A barra de ferramentas mostra ícones que dão acesso a uma visualização de mapa ou um pedido 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 "intent" que aparecem depende 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 SDK do Maps para Android é compatível com os mesmos gestos do app 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 interface, você pode ativar/desativar gestos com a classe UiSettings, que é recebida de um objeto GoogleMap chamando GoogleMap.getUiSettings. As alterações feitas nessa classe são aplicadas imediatamente ao mapa. Para conferir um exemplo desses recursos, consulte a atividade de demonstração das configurações da interface no app de exemplo. Neste artigo, explicamos como fazer a instalação.

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 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).