Przewodnik optymalizacji

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

Bezpieczeństwo

Przeglądanie sprawdzonych metod zapewniania bezpieczeństwa

Klucze interfejsu API to dane uwierzytelniające 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 dotyczącymi zabezpieczeń interfejsu API, aby chronić klucze przed niezamierzonym użyciem, które może prowadzić do nieuzasadnionego 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 interfejsu API są preferowaną metodą uwierzytelniania na potrzeby uzyskiwania dostępu do interfejsów API Map Google. Chociaż używanie identyfikatorów klienta jest nadal obsługiwane, klucze interfejsu API obsługują bardziej szczegółowe ustawienia zabezpieczeń 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” dla każdego interfejsu API lub pakietu SDK. (np. w przypadku Maps JavaScript API wejdź na stronę Korzystanie z klucza interfejsu API).

Wydajność

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 wzrastającego czasu do ponowienia, 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 wysyłania zapytań. W kodzie dodaj okres oczekiwania wynoszący S sekund między zapytaniami. Jeśli zapytanie nadal powoduje błąd limitu, podwój czas oczekiwania i wyślij kolejne zapytanie. Dostosowuj czas oczekiwania, aż zapytanie zostanie zwrócone bez błędu.

Wysyłanie próśb o interakcję 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 należy poczekać, aż użytkownik wykona działanie (np. on-click), aby zainicjować żądanie do 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, gdy mapa się przesuwa;

Unikaj używania Draw() do wyświetlania niestandardowej nakładki na mapie w tym samym czasie, gdy użytkownik może przesuwać mapę. Ponieważ mapa jest ponownie rysowana za każdym razem, gdy użytkownik ją przesuwa, umieszczenie na niej nakładki może powodować opóźnienia lub zacinanie się obrazu. Dodawaj lub usuwaj zawartość nakładki z mapy tylko wtedy, gdy użytkownik przestanie przesuwać lub powiększać.

Unikanie operacji intensywnie wykorzystujących zasoby w metodach Draw

Ogólnie rzecz biorąc, dobrą praktyką jest unikanie w metodzie Draw() operacji, które nie są związane z rysowaniem i wymagają dużej wydajności. Na przykład unikaj tych elementów w kodzie metody Draw():

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

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

Podczas dodawania znaczników do identyfikacji lokalizacji na mapie używaj obrazów rastrowych, np. w formacie PNG lub JPG. Unikaj używania obrazów w formacie grafiki SVG, ponieważ ich renderowanie może powodować opóźnienia podczas ponownego rysowania mapy.

Optymalizowanie znaczników

Optymalizacja zwiększa wydajność dzięki renderowaniu wielu znaczników jako jednego elementu statycznego. Jest to przydatne w przypadkach, gdy wymagana jest duża liczba znaczników. Domyślnie interfejs Maps JavaScript API decyduje, czy znacznik zostanie zoptymalizowany. Jeśli znaczników jest dużo, interfejs Maps JavaScript API spróbuje je wyrenderować z optymalizacją. Nie wszystkie znaczniki można zoptymalizować. W niektórych sytuacjach interfejs Maps JavaScript API może wymagać renderowania znaczników bez optymalizacji. Wyłącz zoptymalizowane renderowanie animowanych GIF-ów 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 obrazów, 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 o zarządzaniu kosztami.