Przewodnik optymalizacji

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

Bezpieczeństwo

Sprawdzone metody zapewniania bezpieczeństwa

Klucze interfejsu API to dane logowania związane z projektem, które wymagają takich samych środków ostrożności co identyfikatory użytkowników i hasła. Zapoznaj się ze sprawdzonymi metodami dotyczącymi bezpieczeństwa interfejsu API, aby zabezpieczyć klucze przed nieumyślnym użyciem, które może prowadzić do nieuzasadnionego wykorzystania limitu i nieoczekiwanych obciążeń na Twoim koncie.

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

Klucze API to preferowana metoda uwierzytelniania umożliwiająca dostęp do interfejsów API Map Google. Identyfikatory klienta są nadal obsługiwane, ale klucze API zapewniają bardziej szczegółowe zabezpieczenia i można je dostosować do działania 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. (np. w przypadku interfejsu Maps JavaScript API odwiedź stronę Korzystanie z klucza API).

Wyniki

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

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 dotyczące limitu, rozważ użycie wykładniczego wycofywania, aby umożliwić przetwarzanie żądań.

Eksponencjonalne opóźnienie jest najbardziej przydatne w przypadku błędów z serwera 500. Więcej informacji znajdziesz w artykule Praca z kodami stanu HTTP.

W szczególności dostosuj tempo swoich zapytań. W kodzie dodaj okres oczekiwania wynoszący S sekund między zapytaniami. Jeśli zapytanie nadal powoduje błąd związany z kwotą, podwójnie wydłuż czas oczekiwania, a potem prześlij kolejne zapytanie. Kontynuuj dostosowywanie czasu 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 wymagają interakcji z użytkownikiem, powinny być wysyłane tylko na żądanie. Oznacza to, że musisz poczekać, aż użytkownik wykona jakieś działanie (np. on-click), aby zainicjować żądanie interfejsu API, a następnie użyć wyników do załadowania mapy, ustawienia miejsca docelowego lub wyświetlenia odpowiednich informacji. Korzystanie z metody na żądanie pozwala uniknąć niepotrzebnych żądań do interfejsów API, co ogranicza ich zużycie.

Unikanie wyświetlania nakładki podczas poruszania mapy

Unikaj używania Draw() do wyświetlania niestandardowych treści nakładki na mapie w tym samym czasie, gdy użytkownik może przemieszczać mapę. Mapa jest odtwarzana za każdym razem, gdy użytkownik ją przesuwa, więc umieszczanie na niej nakładek w tym samym momencie może powodować opóźnienia lub zacinanie się obrazu. Dodawaj i usuwaj na mapie elementy nakładki dopiero wtedy, gdy użytkownik przestanie przewijać mapę lub powiększać jej widok.

Unikaj intensywnych operacji w metodach Draw

Ogólnie rzecz biorąc, w metodzie Draw() należy unikać operacji niewymagających rysowania, które mają duży wpływ na wydajność. W kodzie metody Draw() unikaj na przykład tych elementów:

  • zapytania zwracające dużą ilość treści;
  • wiele zmian w wyświetlanych danych.
  • manipulowanie wieloma elementami modelu DOM (obietkowy model dokumentu);

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

Używanie obrazów rastrowych jako znaczników

Podczas dodawania znaczników, które mają identyfikować lokalizację na mapie, używaj obrazów rastrowych, takich jak pliki PNG lub JPG. Unikaj używania obrazów w formacie SVG, ponieważ ich renderowanie może powodować opóźnienia podczas ponownego rysowania mapy.

znaczniki optymalizacji,

Optymalizacja zwiększa wydajność, renderując wiele znaczników jako pojedynczy element statyczny. Jest to przydatne w przypadku dużej liczby znaczników. Domyślnie interfejs Maps JavaScript API sam decyduje, czy dany znacznik ma być optymalizowany. Jeśli jest duża liczba znaczników, 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 być zmuszony do renderowania znaczników bez optymalizacji. Wyłącz optymalizowane renderowanie animowanych GIF-ów lub plików PNG albo gdy każdy znacznik musi być renderowany jako osobny element DOM.

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

Aby ułatwić sobie zarządzanie wyświetlaniem znaczników służących do identyfikowania lokalizacji na mapie, utwórz klaster znaczników za pomocą biblioteki MarkerClusterer. 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, w którym ma być wyświetlany klaster.
  • Ścieżki obrazów, które mają służyć jako ikony znaczników.

Oglądanie treści

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