Руководство по оптимизации

В этом руководстве описываются несколько стратегий оптимизации использования API Карт Google с точки зрения безопасности, производительности и потребления.

Безопасность

Обзор лучших практик безопасности

Ключи API — это учетные данные, ориентированные на проект, которые заслуживают тех же мер предосторожности, что и идентификаторы пользователей и пароли. Ознакомьтесь с рекомендациями по безопасности API, чтобы защитить свои ключи от непреднамеренного использования, которое может привести к неправомерному использованию квоты и непредвиденным списаниям средств с вашей учетной записи.

Использование ключей API для доступа к API Карт

Ключи API являются предпочтительным методом аутентификации для доступа к API Карт Google. Хотя использование идентификаторов клиентов по-прежнему поддерживается, ключи API поддерживают более детальные элементы управления безопасностью и могут быть настроены для работы с определенными веб-адресами, IP-адресами и мобильными SDK (Android и iOS). Для получения информации о создании и защите ключа API перейдите на страницу «Использование ключа API» для каждого API или SDK. (Например, информацию об API JavaScript Карт можно найти на странице «Использование ключа API» .)

Производительность

Использование экспоненциальной задержки для обработки ошибок

Если в ваших приложениях возникают ошибки из-за чрезмерных попыток вызвать API в течение короткого периода времени, например ошибки квоты, рассмотрите возможность использования экспоненциальной задержки , чтобы позволить обрабатывать запросы.

Экспоненциальная отсрочка наиболее полезна при ошибках размером 500 с. Дополнительные сведения см. в разделе Обработка кодов состояния возврата HTTP .

В частности, отрегулируйте темп ваших запросов. Добавьте в свой код период ожидания в S секунд между запросами. Если запрос по-прежнему приводит к ошибке квоты, удвойте период ожидания, а затем отправьте еще один запрос. Продолжайте корректировать период ожидания, пока запрос не вернется без ошибки.

Отправка запросов на взаимодействие с пользователем по требованию

Запросы к API, включающие взаимодействие с пользователем, следует отправлять только по требованию. Это означает ожидание, пока конечный пользователь выполнит действие (например, on-click ), чтобы инициировать запрос API, а затем использование результатов для загрузки карты, установки пункта назначения или отображения соответствующей информации. Использование подхода по требованию позволяет избежать ненужных запросов к API, сокращая потребление API.

Как избежать отображения наложенного контента при движении карты

Избегайте использования Draw() для отображения пользовательского содержимого наложения на карте в то время, когда пользователь может перемещать карту. Поскольку карта перерисовывается каждый раз, когда пользователь ее перемещает, одновременное размещение наложенного содержимого на карте может вызвать задержку или визуальное заикание. Добавляйте или удаляйте наложенный контент с карты только после того, как пользователь прекратит панорамирование или масштабирование.

Избегание интенсивных операций в методах Draw

Как правило, рекомендуется избегать ресурсоемких операций, не связанных с рисованием, в методе Draw() . Например, избегайте следующего в коде метода Draw() :

  • Запросы, возвращающие большой объем контента.
  • Множество изменений в отображаемых данных.
  • Управление многими элементами объектной модели документа (DOM).

Эти операции могут снизить производительность и вызвать задержку или визуальное зависание при рендеринге карты.

Использование растровых изображений для маркеров

Используйте растровые изображения, например изображения в формате .PNG или .JPG, при добавлении маркеров для определения местоположения на карте. Избегайте использования изображений масштабируемой векторной графики (SVG), так как рендеринг изображений SVG может привести к задержке при перерисовке карты.

Оптимизация маркеров

Оптимизация повышает производительность за счет отображения множества маркеров как одного статического элемента. Это полезно в тех случаях, когда требуется большое количество маркеров. По умолчанию Maps JavaScript API решает, будет ли оптимизирован маркер. При наличии большого количества маркеров API JavaScript Карт попытается отобразить маркеры с оптимизацией. Не все маркеры можно оптимизировать; в некоторых ситуациях Maps JavaScript API может потребоваться отрисовка маркеров без оптимизации. Отключите оптимизированный рендеринг для анимированных изображений GIF или PNG, а также когда каждый маркер должен отображаться как отдельный элемент DOM.

Создание кластеров для управления отображением маркеров

Чтобы управлять отображением маркеров для определения местоположений на карте, создайте кластер маркеров с помощью библиотеки Marker Clusterer . Библиотека Marker Clusterer включает опции для:

  • Размер сетки, чтобы указать количество маркеров, которые нужно сгруппировать в кластер.
  • Максимальный масштаб, чтобы указать максимальный уровень масштабирования для отображения кластера.
  • Пути к изображениям для использования графических изображений в качестве значков маркеров.

Потребление

Информацию об управлении расходами на платформе Google Maps, включая создание бюджетов, изменение квот и настройку оповещений, см. в разделе «Управление расходами» .