Przewodnik optymalizacji

W tym przewodniku znajdziesz kilka strategii optymalizacji korzystania z interfejsów Google Maps API pod kątem bezpieczeństwa, wydajności i zużycia.

Bezpieczeństwo

Sprawdzone metody zapewniania bezpieczeństwa

Klucze interfejsu API to dane logowania powiązane z projektem, które wymagają takich samych środków ostrożności jak identyfikatory użytkowników i hasła. Zapoznaj się ze sprawdzonymi metodami zabezpieczania interfejsu API, aby chronić klucze przed niezamierzonym użyciem, które może prowadzić do nadmiernego wykorzystania limitu i nieoczekiwanych opłat na koncie.

Korzystanie z kluczy interfejsu API w celu uzyskania dostępu do interfejsów API Map Google

Klucze API to preferowana metoda uwierzytelniania dostępu do interfejsów API Map Google. Używanie identyfikatorów klienta jest nadal obsługiwane, ale klucze interfejsu API zapewniają bardziej precyzyjne mechanizmy kontroli bezpieczeństwa i można je dostosować do pracy z określonymi adresami internetowymi, adresami IP i pakietami SDK na urządzenia mobilne (Android i iOS). Informacje o tworzeniu i zabezpieczaniu klucza interfejsu API znajdziesz na stronie „Korzystanie z klucza interfejsu API” dotyczącej każdego interfejsu API lub pakietu SDK. (Na przykład w przypadku interfejsu Maps JavaScript API odwiedź stronę Korzystanie z klucza interfejsu API).

Wyniki

Obsługa błędów za pomocą wzrastającego czasu do ponowienia

Jeśli w aplikacjach występują błędy spowodowane zbyt dużą liczbą prób wywołania interfejsu API w krótkim czasie, np. błędy związane z limitami, rozważ użycie wycofywania wykładniczego, aby umożliwić przetwarzanie żądań. Wzrastający czas do ponowienia jest najbardziej przydatny w przypadku błędów z zakresu 500.

W szczególności dostosuj tempo zapytań. W kodzie dodaj okres oczekiwania wynoszący S sekund między zapytaniami. Jeśli zapytanie nadal powoduje błąd związany z limitem, dwukrotnie wydłuż czas oczekiwania, a potem wyślij kolejne zapytanie. Kontynuuj dostosowywanie okresu oczekiwania, aż zapytanie zwróci wynik bez błędu.

Wysyłanie żądań interakcji z użytkownikiem na żądanie

Żądania do interfejsów API, które obejmują interakcję z użytkownikiem, powinny być wysyłane tylko na żądanie. Oznacza to, że musisz poczekać, aż użytkownik wykona działanie (np. on-click), aby zainicjować żądanie interfejsu API, a następnie użyć wyników do wczytania mapy, ustawienia miejsca docelowego lub wyświetlenia odpowiednich informacji. Podejście na żądanie pozwala uniknąć niepotrzebnych żądań do interfejsów API, co zmniejsza ich wykorzystanie.

Unikanie wyświetlania treści nakładki podczas przesuwania mapy

Unikaj używania Draw() do wyświetlania niestandardowych treści nakładki na mapie w tym samym czasie, w którym użytkownik może przesuwać mapę. Mapa jest rysowana ponownie za każdym razem, gdy użytkownik ją przesuwa, więc umieszczanie na niej treści nakładki może powodować opóźnienia lub zacinanie się obrazu. Nakładaj lub usuwaj treści nakładki z mapy dopiero wtedy, gdy użytkownik przestanie przesuwać lub powiększać mapę.

Unikanie intensywnych operacji w metodach Draw

Ogólnie rzecz biorąc, w metodzie Draw() warto unikać operacji niewymagających rysowania, które są obciążające dla wydajności. Na przykład unikaj w kodzie metody Draw() tych elementów:

  • zapytania, które zwracają dużą ilość treści;
  • Wiele zmian w wyświetlanych danych.
  • manipulowanie wieloma elementami DOM (Document Object Model);

Te operacje mogą spowolnić działanie i powodować opóźnienia lub zacinanie się obrazu podczas renderowania mapy.

Używanie obrazów rastrowych jako znaczników

Do dodawania znaczników identyfikujących lokalizację na mapie używaj obrazów rastrowych, np. w formacie PNG lub JPG. Unikaj używania obrazów SVG, ponieważ renderowanie takich obrazów może powodować opóźnienia podczas ponownego rysowania mapy.

Optymalizacja znaczników

Optymalizacja zwiększa wydajność, renderując wiele znaczników jako jeden statyczny element. Jest to przydatne w przypadku, gdy potrzebna jest duża liczba znaczników. Domyślnie interfejs Maps JavaScript API decyduje, czy znacznik będzie zoptymalizowany. Jeśli znaczników jest dużo, interfejs Maps JavaScript API spróbuje wyrenderować je z optymalizacją. Nie wszystkie znaczniki można zoptymalizować. W niektórych sytuacjach interfejs Maps JavaScript API może renderować znaczniki bez optymalizacji. Wyłącz zoptymalizowane renderowanie animowanych plików GIF lub PNG albo gdy każdy znacznik musi być renderowany jako osobny element DOM.

Tworzenie klastrów do zarządzania wyświetlaniem znaczników

Aby ułatwić zarządzanie wyświetlaniem znaczników identyfikujących lokalizacje na mapie, utwórz klaster znaczników za pomocą biblioteki Marker Clusterer. Biblioteka Marker Clusterer zawiera opcje:

  • Rozmiar siatki, aby określić liczbę znaczników do zgrupowania w klastrze.
  • Maksymalne powiększenie, aby określić maksymalny poziom powiększenia, przy którym ma być wyświetlany klaster.
  • Ścieżki do obrazów graficznych, które mają być używane jako ikony znaczników.

Oglądanie treści

Informacje o zarządzaniu kosztami Google Maps Platform, w tym o tworzeniu budżetów, modyfikowaniu limitów i ustawianiu alertów, znajdziesz w artykule Zarządzanie kosztami.