Przewodnik optymalizacji

Z tego przewodnika dowiesz się, jak zoptymalizować korzystanie z interfejsów Google Maps APIs pod kątem bezpieczeństwa, wydajności i zużycia.

Bezpieczeństwo

Sprawdzanie sprawdzonych metod dotyczących 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 dotyczącymi bezpieczeństwa interfejsu API, aby zabezpieczyć klucze przed niezamierzonym użyciem, które może prowadzić do nadmiernego wykorzystania limitu i nieoczekiwanych opłat na koncie.

Używanie kluczy interfejsu API do uzyskiwania dostępu do interfejsów Maps APIs

Klucze interfejsu API to preferowana metoda uwierzytelniania dostępu do interfejsów Google Maps APIs. Używanie identyfikatorów klienta jest nadal obsługiwane, ale klucze interfejsu API zapewniają bardziej szczegółowe kontrole bezpieczeństwa i można je dostosować do współ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 „Używanie klucza interfejsu API” dotyczącej każdego interfejsu API lub pakietu SDK. (Na przykład w przypadku interfejsu Maps JavaScript API odwiedź jego stronę Używanie klucza interfejsu API).

Wydajność

Używanie wzrastającego czasu do ponowienia w celu obsługi błędów

Jeśli w Twoich aplikacjach występują błędy spowodowane nadmierną liczbą prób wywołania interfejsu API w krótkim czasie, np. błędy limitu, 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.

Dostosuj tempo zapytań. W kodzie dodaj okres oczekiwania wynoszący S sekund między zapytaniami. Jeśli zapytanie nadal powoduje błąd limitu, podwój okres oczekiwania, a następnie wyślij kolejne zapytanie. Kontynuuj dostosowywanie okresu oczekiwania, aż zapytanie zostanie zwrócone 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 do interfejsu API, a następnie użyć wyników do wczytania mapy, ustawienia miejsca docelowego lub wyświetlenia odpowiednich informacji. Stosowanie podejścia na żądanie pozwala uniknąć niepotrzebnych żądań do interfejsów API, co zmniejsza zużycie interfejsu API.

Unikanie wyświetlania treści nakładki, gdy mapa się przesuwa

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

Unikanie operacji wymagających dużej ilości zasobów w metodach Draw

Ogólnie rzecz biorąc, warto unikać operacji wymagających dużej ilości zasobów, które nie są związane z rysowaniem, w metodzie Draw(). 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 identyfikowania lokalizacji na mapie używaj obrazów rastrowych, np. obrazów w formacie PNG lub JPG. Unikaj używania obrazów SVG, ponieważ renderowanie obrazów SVG może powodować opóźnienia podczas ponownego rysowania mapy.

Optymalizowanie znaczników

Optymalizacja zwiększa wydajność, renderując wiele znaczników jako jeden statyczny element. Jest to przydatne w przypadkach, gdy wymagana jest duża liczba znaczników. Domyślnie interfejs Maps JavaScript API decyduje, czy znacznik będzie zoptymalizowany. Gdy jest duża liczba znaczników, interfejs Maps JavaScript API próbuje renderować 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 te opcje:

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

Oglądanie treści

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