Guía de optimización

En esta guía, se describen varias estrategias para optimizar el uso de las APIs de Google Maps en términos de seguridad, rendimiento y consumo.

Seguridad

Cómo revisar las prácticas recomendadas de seguridad

Las claves de API son credenciales centradas en el proyecto que merecen las mismas precauciones que los IDs de usuario y las contraseñas. Revisa las prácticas recomendadas sobre las claves de API para proteger tus claves del uso no deseado, que podría generar un consumo indebido de la cuota y cargos inesperados en tu cuenta.

Cómo usar las claves de API para acceder a las APIs de Google Maps

Las claves de API son el método de autenticación preferido para acceder a las APIs de Google Maps. Si bien todavía se admite el uso de los IDs de cliente, las claves de API admiten controles de seguridad más detallados y se pueden ajustar para funcionar con direcciones web, direcciones IP y SDK para dispositivos móviles (iOS y Android) específicos. Si deseas obtener información sobre cómo crear y proteger una clave de API, visita la página "Cómo usar una clave de API" para cada API o SDK. Por ejemplo, para usar la API de Maps JavaScript, consulta la sección correspondiente en la página Cómo usar una clave de API.

Rendimiento

Cómo usar la retirada exponencial para manejar errores

Si tus apps experimentan errores debido a una cantidad excesiva de intentos de llamadas a una API en un período breve, como errores de cuota, considera usar la retirada exponencial para permitir que se procesen las solicitudes.

La retirada exponencial es más útil para errores con códigos en los 500. Para obtener más información, consulta Cómo manejar códigos de estado de retorno HTTP.

Específicamente, ajusta el ritmo de tus consultas. En el código, agrega un período de espera de S segundos entre las consultas. Si la consulta aún genera un error de cuota, duplica ese período y, luego, envía otra consulta. Sigue ajustándolo hasta que la consulta se muestre sin errores.

Cómo enviar solicitudes de interacción del usuario a pedido

Las solicitudes a las APIs que incluyen interacción con el usuario deben enviarse solo a pedido. Esto significa que se debe esperar a que el usuario final realice una acción (como on-click) para iniciar la solicitud a la API y, luego, se deben utilizar los resultados para cargar un mapa, establecer un destino o mostrar la información apropiada. Usar un enfoque a pedido evita las solicitudes innecesarias a las APIs, lo que reduce el consumo de API.

Cómo evitar mostrar contenido superpuesto cuando se mueve un mapa

Evita usar Draw() para mostrar contenido superpuesto personalizado en un mapa mientras un usuario podría estar moviéndolo. Debido a que el mapa se vuelve a dibujar cada vez que un usuario lo mueve, colocarle contenido superpuesto al mismo tiempo puede generar retrasos o saltos visuales. Solo agrega o quita contenido de este tipo cuando el usuario deje de desplazarse lateralmente o ya no use el zoom en el mapa.

Cómo evitar operaciones intensivas en métodos Draw

Como regla general, se recomienda evitar las operaciones de rendimiento intensivo que no sean de dibujo en un método Draw(). Por ejemplo, evita lo siguiente en el código del método Draw():

  • Consultas que muestran una gran cantidad de contenido
  • Muchos cambios en los datos que se muestran
  • Manipulación de muchos elementos del Modelo de objetos del documento (DOM)

Estas operaciones pueden ralentizar el rendimiento y generar retrasos o saltos visuales cuando se renderiza el mapa.

Cómo usar imágenes de trama para marcadores

Usa imágenes de trama, como imágenes en formato .PNG o .JPG, cuando agregues marcadores para identificar una ubicación en un mapa. Evita usar imágenes de Gráficos vectoriales escalables (SVG), ya que la renderización de imágenes SVG puede generar demoras cuando se vuelve a dibujar el mapa.

Cómo optimizar los marcadores

La optimización mejora el rendimiento mediante la renderización de muchos marcadores como un solo elemento estático. Esto resulta útil en los casos en los que se requiere una gran cantidad de marcadores. De manera predeterminada, la API de Maps JavaScript decide si se optimizará o no un marcador. Si hay una gran cantidad de marcadores, la API de Maps JavaScript intentará renderizarlos con optimización. No todos los marcadores se pueden optimizar. En algunos casos, es posible que la API de Maps JavaScript necesite renderizar marcadores sin optimización. Inhabilita la renderización optimizada para PNG o GIF animados, o cuando cada marcador se deba renderizar como un elemento separado del DOM.

Cómo crear clústeres para administrar la visualización de marcadores

Para ayudarte a administrar la visualización de los marcadores y así identificar ubicaciones en un mapa, crea un clúster de marcadores mediante la biblioteca Marker Clusterer. Esta biblioteca incluye opciones para lo siguiente:

  • Tamaño de cuadrícula, que te permite especificar la cantidad de marcadores que se agruparán en un clúster
  • Zoom máximo, que te permite especificar el nivel de zoom máximo en el que se muestra el clúster
  • Rutas de acceso para las imágenes gráficas que se utilizarán como íconos de marcador

Consumo

Para obtener información sobre cómo administrar los costos de Google Maps Platform, lo que incluye crear presupuestos, modificar cuotas y configurar alertas, consulta Administrar costos.