Guia de otimização

Este guia descreve várias estratégias para otimizar o uso das APIs Google Maps no que se refere a segurança, performance e consumo.

Segurança

Ler as práticas recomendadas de segurança

As chaves de API são credenciais específicas do projeto que precisam ser manipuladas com o mesmo cuidado que IDs do usuário e senhas. Leia as práticas recomendadas de segurança da API para proteger suas chaves do uso não intencional, o que poderia levar à utilização incorreta da cota e cobranças inesperadas na conta.

Usar as chaves de API para acessar as APIs Maps

As chaves de API são o método de autenticação preferencial para acessar as APIs Google Maps. Os IDs de cliente ainda são aceitos, mas as chaves de API são compatíveis com controles de segurança mais refinados e podem ser ajustadas para funcionar com endereços da Web, endereços IP e SDKs para dispositivos móveis (Android e iOS) específicos. Para saber como criar e proteger uma chave de API, acesse a página "Usar uma chave de API" em cada API ou SDK. Por exemplo, para a API Maps JavaScript, acesse a página Usar uma chave de API.

Desempenho

Usar a espera exponencial para lidar com erros

Se os seus apps apresentarem erros relacionados a tentativas excessivas de chamada de API em um curto período, como erros de cota, é recomendável usar a espera exponencial para permitir que as solicitações sejam processadas.

A espera exponencial é mais útil para erros nos 500s. Para mais informações, consulte Como lidar com códigos de status de retorno HTTP.

Ajuste o ritmo das suas consultas. No código, adicione um período de espera de S segundos entre as consultas. Se a consulta ainda resultar em um erro de cota, dobre o tempo de espera e envie outra consulta. Continue ajustando o período até que a consulta retorne sem erro.

Enviar solicitações de interação do usuário sob demanda

As solicitações para APIs que incluem interação do usuário devem ser enviadas somente sob demanda. Isso significa aguardar o usuário final realizar uma ação (como on-click) para iniciar a solicitação de API e, em seguida, usar os resultados para carregar um mapa, definir um destino ou mostrar as informações apropriadas. A utilização de uma abordagem sob demanda evita solicitações desnecessárias e reduz o consumo das APIs.

Evitar mostrar conteúdo de sobreposição quando um mapa estiver sendo movido

Não use o método Draw() para mostrar conteúdo personalizado de sobreposição em um mapa ao mesmo tempo que um usuário move esse mapa. Como ele é redesenhado a cada movimento, posicionar conteúdo de sobreposição ao mesmo tempo pode gerar lentidão ou renderização visual lenta. Só adicione ou remova o conteúdo de sobreposição quando o usuário parar de mover o mapa ou alterar o zoom.

Evitar operações intensivas em métodos Draw

De maneira geral, desaconselhamos usar operações que não sejam de desenho e que exijam alta performance em um método Draw(). Por exemplo, evite o seguinte no código do método Draw():

  • Consultas que retornam uma grande quantidade de conteúdo.
  • Muitas mudanças nos dados mostrados.
  • Manipular muitos elementos do Modelo de objeto de documentos (DOM, na sigla em inglês).

Essas operações podem prejudicar a performance e gerar lentidão ou renderização visual lenta no mapa.

Usar imagens de varredura para marcadores

Aplique imagens de varredura, como no formato .PNG ou .JPG, ao adicionar marcadores para identificar um local no mapa. Evite usar imagens de Elementos gráficos vetoriais escaláveis (SVG, na sigla em inglês), já que a renderização de imagens nesse formato pode causar lentidão quando o mapa é redesenhado.

Otimizar marcadores

A otimização melhora a performance, renderizando muitos marcadores como um único elemento estático. Isso é útil quando muitos marcadores são necessários. Por padrão, a API Maps JavaScript decide se um marcador vai ser otimizado. Quando há um grande número de marcadores, a API Maps JavaScript tenta otimizar a renderização dos marcadores. Nem todos os marcadores podem ser otimizados. Em algumas situações, a API Maps JavaScript pode ter que renderizar marcadores sem otimização. Desative a renderização otimizada para PNGs ou GIFs animados ou quando cada marcador precisar ser renderizado como um elemento DOM separado.

Criar clusters para gerenciar a visualização de marcadores

Para ajudar no gerenciamento da visualização de marcadores que identificam locais no mapa, crie um cluster usando a biblioteca Marker Clusterer (em inglês). Essa biblioteca tem as seguintes opções:

  • Tamanho da grade: para especificar o número de marcadores a serem agrupados em um cluster.
  • Zoom máximo: para definir o nível máximo de zoom em que o cluster vai ser mostrado.
  • Caminhos das imagens: para serem usados como ícones de marcador.

Consumo

Para informações sobre como gerenciar os custos da Plataforma Google Maps, incluindo a criação de orçamentos, a modificação de cotas e a configuração de alertas, consulte Gerenciar custos.