W tym przewodniku opisano kilka strategii optymalizacji interfejsów API Map Google pod kątem bezpieczeństwa, wydajności i wykorzystania.
Bezpieczeństwo
Sprawdzanie sprawdzonych metod zapewniania bezpieczeństwa
Klucze interfejsu API to dane logowania skoncentrowane na projektach, które wymagają tych samych środków ostrożności takich jak identyfikatory użytkowników i hasła. Zapoznaj się z Sprawdzone metody zapewniania bezpieczeństwa interfejsów API, aby zabezpieczyć swoje klucze niezamierzone użycie, które może doprowadzić do nadmiernego wykorzystania limitu i nieoczekiwanych opłat; do swojego konta.
Dostęp do interfejsów API Map Google za pomocą kluczy interfejsu API
Klucze interfejsu API są preferowaną metodą uwierzytelniania przy dostępie do interfejsów API Map Google API. Mimo że korzystanie z identyfikatorów klientów jest obecnie obsługiwane, klucze interfejsu API obsługują bardziej szczegółowe opcje zabezpieczeń i można je dostosować do działania adresów internetowych, adresów IP i mobilnych pakietów SDK (Android i iOS). Informacje na temat dotyczące tworzenia i zabezpieczania klucza interfejsu API, przejdź do sekcji „Używanie klucza interfejsu API” strony dla każdej interfejsu API lub pakietu SDK. (Na przykład w przypadku Maps JavaScript API kliknij Więcej o używaniu klucza interfejsu API).
Wyniki
Używanie wykładniczego czasu do ponowienia do obsługi błędów
Jeśli w aplikacjach występują błędy z powodu nadmiernej liczby prób wywołania interfejsu API w krótkim czasie, np. w przypadku wystąpienia błędów limitu, rozważ wykorzystanie wykładniczy czas do ponowienia, aby umożliwić przetwarzanie żądań.
Wykładniczy czas do ponowienia jest najbardziej przydatny w przypadku błędów występujących w pierwszych 500 sekundach. Aby dowiedzieć się więcej, Więcej informacji znajdziesz w artykule Obsługa kodów stanu zwrotu HTTP.
a w szczególności o dostosowaniu tempa zapytań. W kodzie dodaj
czas oczekiwania między kolejnymi zapytaniami wynosi S
s. Jeśli zapytanie nadal się wyświetla
w przypadku błędu limitu dwukrotnie wydłuż okres oczekiwania i wyślij kolejne zapytanie. Dalej
dostosować okres oczekiwania, aż zapytanie zwróci się bez błędu.
wysyłanie na żądanie żądań dotyczących interakcji z użytkownikiem;
Żądania do interfejsów API, które obejmują interakcję użytkownika, powinny być wysyłane tylko na żądanie.
Oznacza to oczekiwanie, aż użytkownik wykona działanie (np. on-click
)
w celu zainicjowania żądania do interfejsu API, a następnie za pomocą wyników do wczytania mapy ustaw tag
miejsca docelowego lub wyświetlać odpowiednie informacje. Użycie metody „na żądanie”
pozwala uniknąć niepotrzebnych żądań do interfejsów API, co zmniejsza wykorzystanie interfejsów API.
Unikanie wyświetlania zawartości nakładki, gdy mapa jest ruchoma
Nie używaj Draw()
do jednoczesnego wyświetlania na mapie niestandardowej zawartości nakładki.
czas, w którym użytkownik przesuwa mapę. Ponieważ mapa jest rysowana ponownie
użytkownik przesuwa mapę, umieszczenie na mapie nakładki z treściami
wprowadzenie opóźnienia lub zacinania się obrazu. Dodaj lub usuń treść nakładki tylko z
gdy użytkownik przestanie przesuwać lub powiększać mapę.
Unikam intensywnych operacji w metodach Draw
Ogólnie rzecz biorąc, należy unikać wysokich wyników
operacji nierysunkowych w metodzie Draw()
. Unikaj na przykład
ten kod w kodzie metody Draw()
:
- Zapytania, które zwracają dużą ilość treści.
- Wiele zmian w wyświetlanych danych.
- manipulowanie wieloma elementami DOM (Document Object Model).
Operacje te mogą spowolnić działanie i wprowadzić opóźnienie lub zacinanie się obrazu. podczas renderowania mapy.
Używanie obrazów rastrowych w znacznikach
Dodawaj obrazy rastrowe, np .w formacie PNG lub JPG. do identyfikowania lokalizacji na mapie. Unikaj korzystania ze skalowalnego wektora Obrazy graficzne (SVG), ponieważ renderowanie obrazów SVG może powodować opóźnienie, mapa jest ponownie rysowana.
Optymalizowanie znaczników
Optymalizacja zwiększa wydajność dzięki renderowaniu wielu znaczników jako jednego statycznego . Jest to przydatne, gdy wymagana jest duża liczba znaczników. Domyślnie interfejs Maps JavaScript API decyduje, czy zostanie zoptymalizowana. Jeśli jest dużo znaczników, Maps JavaScript API spróbuje renderować znaczniki z optymalizacji. Nie wszystkie znaczniki można zoptymalizować. ale czasami Maps JavaScript API może wymagać renderowania znaczników bez optymalizacji. Wyłącz zoptymalizowane renderowanie animowanych GIF-ów lub plików PNG lub każdy znacznik musi być renderowany jako oddzielny element DOM.
Tworzenie klastrów w celu zarządzania wyświetlaniem znaczników
Aby ułatwić zarządzanie wyświetlaniem znaczników służących do identyfikowania lokalizacji na mapie, utwórz klaster znaczników za pomocą funkcji Biblioteka Marker Clusterer. Biblioteka znaczników Clusterer zawiera opcje dotyczące:
- Rozmiar siatki określający liczbę znaczników do zgrupowania które są w jednym miejscu.
- maksymalne powiększenie, aby określić maksymalny poziom powiększenia, aby wyświetlić klaster.
- Ścieżki obrazów – obrazy grafiki używane jako ikony znaczników.
Oglądanie treści
Aby zaplanować budżet i kontrolować koszty, wykonaj następujące czynności:
- Skonfiguruj alert dotyczący budżetu
śledzić wzrost kosztów do określonej kwoty. Ustawianie budżetu
nie ogranicza wykorzystania interfejsu API – powiadamia jedynie, kiedy koszty zbliżą się do
określoną kwotę.
- Ograniczenie dziennego wykorzystania interfejsu API w celu zarządzania kosztami interfejsów API podlegających rozliczeniu. Przez ustawienie limitów liczby żądań na dzień, możesz ograniczyć koszty. Za pomocą prostego równania określamy dzienny poziom w zależności od tego, ile chcesz wydać: (miesięcznie koszt/cena za sztukę )/30 = limit żądań dziennie (dla jednego interfejsu API). Twoja implementacja może korzystają z wielu płatnych interfejsów API, więc dostosuj równanie według potrzeb. O Środki w wysokości 200 USD na interfejsy API Map Google jest dostępna każdego miesiąca, więc uwzględnij ją w obliczeniach.
- Używaj wielu projektów, aby izolować i śledzić wykorzystanie zasobów oraz ustalać ich priorytety. Załóżmy na przykład, że regularnie używasz interfejsów API Google Maps Platform w swoich testów. Tworząc osobny projekt na potrzeby testowania – z własnymi limitami Klucze interfejsu API – można przeprowadzić dokładne testy, chroniąc się przed zaskoczeniem nadmierne wydatki.
Zarządzanie wykorzystaniem w Mapach
Użycie jednej mapy na stronę jest dobrym sposobem na optymalizację wyświetlania map, użytkownicy zwykle korzystają tylko z jednej mapy w tym samym czasie. Aplikacja może manipulować na mapie tak, aby wyświetlać różne zbiory danych w zależności od interakcji z klientem i potrzeb.
Korzystanie z obrazów statycznych
Koszt żądań, które korzystają z zdjęć dynamicznych (Mapy dynamiczne i dynamiczne Street View) niż statyczne mapy i statyczne zdjęcia Street View. Jeśli nie przewidujesz, aby użytkownik interakcji z mapą lub funkcją Street View (powiększanie lub przesuwanie), użyj obrazu tych interfejsów API.
Miniatury – bardzo małe mapy i zdjęcia – także świetnie nadają się do zdjęć statycznych. Mapy i Statyczny widok Street View. Te produkty są rozliczane według niższej stawki i w dniu interakcji użytkownika (po kliknięciu) i może kierować użytkowników do wersji dynamicznej i korzystania z Map Google.
Korzystanie z interfejsu Maps Embed API
Za pomocą interfejsu Maps Embed API możesz dodać mapę z atrybutem za pomocą jednego znacznika czy dynamicznej mapy. Użyj Maps Embed API dla aplikacji, w których pojedyncza i nie wymaga dostosowania mapy. żądań do interfejsu Maps Embed API korzystających z trybu wskazówek dojazdu; Tryb wyświetlania lub wyszukiwania będą naliczane opłaty (patrz tabela cen ).
Korzystanie z pakietów SDK map na urządzenia mobilne w aplikacjach mobilnych
W przypadku aplikacji mobilnych użyj pakietu Maps SDK na Androida lub Maps SDK na iOS podczas wyświetlania mapy. Używanie statycznego interfejsu API Map Google lub Maps JavaScript API, gdy wymagania nie są spełnione za pomocą mobilnych pakietów SDK.
Zarządzanie wykorzystaniem w trasach
Ograniczanie punktów pośrednich interfejsu Directions API
Jeśli to możliwe, ogranicz wpisy użytkowników w zapytaniu do maksymalnie 10 punktów pośrednich. Żądania zawierające więcej niż 10 punktów pośrednich są rozliczane według wyższej stawki.
Korzystanie z optymalizacji interfejsu Directions API w celu uzyskania optymalnego routingu
Żądania używające argumentu optymalizacji punktu pośredniego są rozliczane według wyższej stawki. Aby dowiedzieć się więcej, poczytaj o optymalizacji punktów pośrednich.
Argument optymalizacji sortuje punkty pośrednie, aby zapewnić optymalne Oznacza to, że zoptymalizowanie podróży z punktu A do E jest wygodniejsze. (A-B-C-D-E) a losowa sekwencja niezoptymalizowanej trasy (np. A-D-B-C-E).
Korzystanie z modeli ruchu w czasie rzeczywistym w interfejsach Directions API i Reach Matrix API
Directions API oraz Reach Matrix API
dla żądań, które obejmują modele ruchu w czasie rzeczywistym, są rozliczane według wyższej stawki.
Modele ruchu w czasie rzeczywistym można włączyć, ustawiając czas odjazdu na now
.
Jeśli modele ruchu zostaną pominięte w żądaniu, wyniki będą oparte na wyłącznie na podstawie czynników fizycznych: dróg, odległości i ograniczeń prędkości.
Korzystanie z pokonanych tras Najbliższa droga, jeśli dane GPS są niedokładne
funkcje interfejsu API Maps Roads, Przebyte trasy oraz Najbliższa droga, są uwzględnione w poziomie zaawansowanym i są rozliczane według wyższej stawki. Korzystaj z tych funkcji, jeśli dane GPS są nieprecyzyjne, Interfejs Roads API może pomóc w określeniu właściwej drogi. Prędkość Limity, kolejna funkcja interfejsu Roads API, tylko dla klientów korzystających ze śledzenia komponentów.
Próbkowanie lokalizacji z ograniczeniem prędkości w odstępach 5–15 minut
Aby zminimalizować liczbę wywołań interfejsu Maps Roads API Usługa ograniczenia prędkości, próbkowanie lokalizacji zasobów w ciągu 5–15 minut interwały. Dokładna wartość zależy od szybkości, z jaką zasób jest podróżowanie. Jeśli zasób jest nieruchomy, pojedyncza próbka lokalizacji to wystarczająca. Nie ma potrzeby nawiązywania wielu połączeń.
Aby zminimalizować ogólny czas oczekiwania, wywołaj usługę ograniczania prędkości po zebrał część danych, zamiast wywoływać interfejs API za każdym razem, gdy lokalizację komponentu mobilnego.
Zarządzanie wykorzystaniem w Miejscach
Optymalizowanie implementacji autouzupełniania miejsc
Aby zoptymalizować koszt korzystania z autouzupełniania miejsc:
używać masek pól w widżetach autouzupełniania JavaScript, Android i iOS, aby zwracać tylko potrzebne pola danych miejsc.
Wybór opcji płatności zależy od konkretnego przypadku użycia. W zależności od tego, czy Twoja implementacja korzysta z sesji autouzupełniania, naliczane będą kody SKU Autouzupełnianie – według żądania lub Autouzupełnianie – na sesję.
Więcej informacji i wskazówek dotyczących wyboru odpowiedniej opcji w danym przypadku znajdziesz w artykule Sprawdzone metody optymalizacji kosztów autouzupełniania miejsc.
Zwracanie danych dla określonych pól w żądaniach informacji o miejscu i wyszukiwania miejsc
Możesz dostosować żądania dotyczące informacji o miejscach i wyszukiwania miejsc tak, aby zwracały dane dla określonych pól użytych w aplikacji. Te pola są podzielone na: kategorie: Podstawowe, Kontakt i Atmosfera. Żądania, które nie spełniają tego wymogu Określenie, że dowolne pola będą otrzymywać dane do wszystkich pól.
Płatności za żądania dotyczące informacji o miejscu są oparte na typach i kwotach danych, których dotyczy prośba. Żądania, które nie mają określonych pól, będą rozliczane po pełnej cenie. Więcej informacji można znaleźć w sekcjach Szczegóły miejsca i Wyszukiwanie miejsc.
Zmniejszanie kosztów za pomocą interfejsu Geocoding API
Jeśli aplikacja obsługuje adresy wpisywane przez użytkowników, czasami są niejednoznaczne (niepełne, błędnie napisane lub źle sformatowane). Wyróżnij adresy za pomocą autouzupełniania, a następnie użyj identyfikatorów miejsc , aby poznać lokalizację danego miejsca.
Jeśli masz dokładny adres (lub w pobliżu), możesz jednak ograniczyć za pomocą geokodowania zamiast autouzupełniania. Aby dowiedzieć się więcej, zobacz Sprawdzone metody dotyczące adresów geograficznych.
Jak działają limity w Google Maps Platform
Wszystkie nasze interfejsy API mają ograniczoną liczbę połączeń, które może wykonać każdy klient. Te limity są konfigurowane co minutę. Po osiągnięciu limitu wywołań danego interfejsu API w ciągu minuty, przyszłe wywołania będą akceptowane dopiero min.
Wliczane są tylko udane żądania i żądania, które powodują błędy serwera limit miejsca na dane. Żądania, które nie przejdą uwierzytelniania, nie wliczają się do limitu.
Oszacuj koszty dowolnej usługi interfejsu API GMP na podstawie łącznej liczby żądań.