Pronto!

Para começar a desenvolver, acesse nossa documentação do desenvolvedor.

Ativar a Google Maps JavaScript API

Para começar, orientaremos você pelo Console do Desenvolvedor do Google para realizar algumas atividades:

  1. Criar ou selecionar um projeto
  2. Ativar a Google Maps JavaScript API e serviços relacionados
  3. Criar chaves apropriadas
Continuar

Comportamento de rolagem e deslocamento

Usando a opção gestureHandling no objeto MapOptions, é possível controlar o comportamento de movimentação e rolagem de um mapa quando exibido em um dispositivo móvel.

Exemplo

O exemplo a seguir usa o tratamento de gestos cooperative. Veja a demonstração em um dispositivo móvel para observar o código em ação.

/**
 * This sample sets the gesture handling mode to 'cooperative',
 * which means that on a mobile device, the user must swipe with one
 * finger to scroll the page and two fingers to pan the map.
 */
function initMap() {
  var myLatLng = {lat: -25.363, lng: 131.044};

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 4,
    center: myLatLng,
    gestureHandling: 'cooperative'
  });

  var marker = new google.maps.Marker({
    position: myLatLng,
    map: map,
    title: 'Hello World!'
  });
}
<div id="map"></div>
/* Always set the map height explicitly to define the size of the div
 * element that contains the map. */
#map {
  height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}
 <!-- Replace the value of the key parameter with your own API key. -->
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap">
</script>
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Cooperative Gesture Handling</title>
    <style>
      /* Always set the map height explicitly to define the size of the div
       * element that contains the map. */
      #map {
        height: 100%;
      }
      /* Optional: Makes the sample page fill the window. */
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
    </style>
  </head>

  <body>
    <div id="map"></div>
    <script>

      /**
       * This sample sets the gesture handling mode to 'cooperative',
       * which means that on a mobile device, the user must swipe with one
       * finger to scroll the page and two fingers to pan the map.
       */
      function initMap() {
        var myLatLng = {lat: -25.363, lng: 131.044};

        var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 4,
          center: myLatLng,
          gestureHandling: 'cooperative'
        });

        var marker = new google.maps.Marker({
          position: myLatLng,
          map: map,
          title: 'Hello World!'
        });
      }
    </script>
    <script async defer
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
    </script>
  </body>
</html>

Tratamento de gestos

Na Web para dispositivos móveis, pode ser irritante para os usuários quando deslizam com a intenção de rolar a página, mas o mapa se move.

A Google Maps JavaScript API fornece uma opção gestureHandling no objeto MapOptions que pode ser usado para otimizar a experiência dos usuários ao interagir com o mapa. Os valores disponíveis são:

  • greedy: O mapa sempre se move (para cima ou para baixo, para a esquerda ou para a direita) quando o usuário desliza (arrasta) a tela. Em outras palavras, deslizar com um ou dois dedos faz com que o mapa se mova.
  • cooperative: O usuário precisa deslizar com um dedo para rolar a página e com dois dedos para mover o mapa. Se o usuário deslizar o mapa com um dedo, uma sobreposição é exibida no mapa solicitando ao usuário que use dois dedos para mover o mapa. Veja o exemplo acima em um dispositivo móvel para observar o modo cooperativo em ação.
  • none: Não é possível exibir um panorama ou fazer gestos de pinça no mapa.
  • auto (padrão): O comportamento é cooperative ou greedy, dependendo de a página poder ou não ser rolada. Em mais detalhes, se a opção é auto, a API escolhe o seguinte comportamento:
    • cooperative se o corpo da página é maior do que a janela ou se a API não consegue determinar o tamanho da página (por exemplo, se for um iframe).
    • greedy se o corpo da página não é maior do que a janela e, portanto, é improvável que o usuário precise rolá-la.

O controle de tela cheia é visível por padrão em dispositivos móveis e os usuários podem facilmente aumentar o mapa. Quando o mapa está em modo de tela cheia, os usuários podem movê-lo usando um ou dois dedos. Observação: o iOS não oferece suporte ao recurso de tela cheia. Portanto, o controle em tela cheia não fica visível em dispositivos iOS.

Eventos

A API aciona os seguintes eventos, dentre outros, quando o usuário rola (arrasta) o mapa:

  • drag: Acionado repetidamente enquanto o usuário arrasta o mapa.
  • dragstart: Acionado quando o usuário começa a arrastar o mapa.
  • dragend: Acionado quando o usuário para de arrastar o mapa.

Consulte o guia de eventos e a referência para obter mais informações.

Restrições e limitações

As seguintes restrições se aplicam ao comportamento disponibilizado na opção de gestureHandling:

  • Somente dispositivos sensíveis ao toque: As opções de gestureHandling se aplicam somente se o usuário estiver visualizando a página em um dispositivo que tem suporte para uma interface tátil.
  • Somente eventos de toque: As opções de gestureHandling não se aplicam a eventos de mouse ou caneta.
  • Não para mapas conectados: As opções de gestureHandling não se aplicam a mapas com login ativado.
  • Não para Street View: As opções de gestureHandling não se aplicam ao serviço Street View.

Enviar comentários sobre…

Google Maps JavaScript API
Google Maps JavaScript API
Precisa de ajuda? Acesse nossa página de suporte.