Rozwiązywanie problemów

Błędy

W przypadku błędu zwracana jest standardowa treść odpowiedzi błędu formatu, a kod stanu HTTP zostaje ustawiony na stan błędu.

Odpowiedź zawiera obiekt z pojedynczym obiektem error z tymi kluczami:

  • code: jest taki sam jak stan HTTP odpowiedzi.
  • message: krótki opis błędu.
  • status: kod stanu informujący o charakterze błędu.

Na przykład wysłanie nieprawidłowego parametru placeId spowoduje wyświetlenie tego błędu:

{
  "error": {
    "code": 400,
    "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
    "status": "INVALID_ARGUMENT"
  }
}

Możliwe błędy:

Kod Stan Wiadomość Rozwiązywanie problemów
400 INVALID_ARGUMENT Podany klucz jest nieprawidłowy. Twój klucz interfejsu API jest nieprawidłowy lub nie został uwzględniony w żądaniu. Sprawdź, czy został przez Ciebie uwzględniony cały klucz oraz czy interfejs API dla tego klucza został włączony.
400 INVALID_ARGUMENT "\"path\" parametr zawiera nieprawidłową wartość: ☃" Żądanie zawiera nieprawidłowe argumenty. Najczęstsze przyczyny tego błędu:
  • Wystąpił problem z parametrem path.
    Upewnij się, że masz co najmniej 1 punkt, ale mniej niż 100 punktów. Każdy punkt powinien być ciągiem cyfr rozdzielonych przecinkami, np.: 48.409114,-123.369158. Punkty powinny być rozdzielone pionową kreską: '|'.
  • Żądanie zawiera nieprawidłowy element placeId.
  • Prośba zawiera zarówno placeId, jak i path. W każdym żądaniu można określić tylko jeden z tych parametrów.

Ten błąd nie jest zwracany, jeśli pole placeId przeszło przez drogę, która już nie istnieje, lub dla miejsca, które nie jest drogą.

403 PERMISSION_DENIED Niezarejestrowana prośba została zablokowana. Zarejestruj się przez Google Developers Console. Prośba została odrzucona z co najmniej jednego z tych powodów:
  • Brak klucza interfejsu API lub jest on nieprawidłowy.
  • Płatności nie zostały włączone na Twoim koncie.
  • Limit nałożony przez siebie został przekroczony.
  • Podana forma płatności jest już nieważna (np. karta kredytowa straciła ważność).

Aby móc korzystać z usług Google Maps Platform, na koncie muszą być włączone płatności, a wszystkie żądania muszą zawierać prawidłowy klucz interfejsu API. Aby rozwiązać ten problem:

404 NOT_FOUND Ta usługa wymaga protokołu HTTPS. Upewnij się, że wysyłasz żądania do https://roads.googleapis.com/, a nie do http://roads.googleapis.com/.
429 RESOURCE_EXHAUSTED Żądanie zostało ograniczone z powodu osiągnięcia limitów żądań w projekcie. Przekroczono limit żądań skonfigurowany w konsoli Google Cloud Platform. Ten limit jest zwykle określany jako żądania na dzień, żądania na 100 sekund i żądania na 100 sekund na użytkownika. Ten limit należy skonfigurować w taki sposób, aby pojedynczy limit użytkowników nie został wyczerpany, a jednocześnie użytkownicy mieli do nich łatwy dostęp. Informacje o konfigurowaniu tych limitów znajdziesz w artykule Ograniczanie wykorzystania interfejsu API.

Wykładnicze ponowienie

Jeśli żądania nie powiodą się, sprawdź, czy są one wykonywane ponownie z wykładniczą wykładnią. Jeśli na przykład żądanie zakończy się niepowodzeniem raz, spróbuj jeszcze raz za 2 sekundy, a następnie spróbuj ponownie za 2 sekundy, itd. Dzięki temu masz pewność, że uszkodzone żądania lub awarie na dużą skalę nie zalewają serwerów Google, ponieważ wielu klientów próbuje szybko ponawiać żądania.

Najczęstsze pytania dotyczące rozwiązywania problemów

Problemy z implementacją

Z jaką częstotliwością mam sprawdzić lokalizację pojazdu?
Zalecamy, aby robić zdjęcia od 1 do 10 sekund z wysoką jakością zdjęć przyspieszonych.
Czy liczba punktów, które mogę wysłać na jedno zapytanie, jest ograniczona?
Tak, zapytanie może mieć maksymalnie 100 punktów.
Jak duży poziom dokładności mam zastosować do zapisanych par szerokości i długości geograficznej?
Aby przechwycone ścieżki miały dostęp do dróg na wszystkich poziomach powiększenia, nawet przy maksymalnym powiększeniu, uwzględnij szerokość i długość geograficzną w 7 miejscach po przecinku.
Czy mogę używać zakodowanych linii łamanych w celu wyświetlania przechwyconych ścieżek?
Zakodowane linie łamane są określane z dokładnością do 5 miejsc po przecinku, co powoduje zwracanie błędów przez około 2 metry. Zakodowane linie łamane nie są więc odpowiednie, jeśli chcesz, aby przechwycone ścieżki podążały przy drodze z wysokim poziomem powiększenia.

Częste problemy

Niektóre punkty nie są przycinane lub mam luki w ścieżkach. Jak rozwiązać ten problem?
  • Jeśli próbkujesz punkty w interwałach czasowych, upewnij się, że punkty są próbkowane w krótszych odstępach czasu (co 1–10 sekund). W przypadku stosowania dłuższego przedziału czasu (np. 60 sekund) algorytm przyciągania drogi może nie być w stanie określić, z którymi drogami podróżuje się z odpowiednią dokładnością.
  • Jeśli ręcznie klikasz mapę w celu tworzenia punktów, możesz łatwo utworzyć ścieżki z kilkoma punktami lub rozproszonemi punktami, których algorytm przyciągania nie jest obsługiwany. Algorytm przyciągania sprawdza się najlepiej w przypadku punktów, które są blisko siebie. Wypróbuj wersję demonstracyjną funkcji Przyciągaj do drogi lub przetestuj swoje ścieżki za pomocą inspektora dróg.
Dlaczego wycinane przeze mnie ścieżki są poszarpane lub lekko odsunięte od drogi, gdy powiększę widok?
  • Czy obcinasz precyzję parowanych szerokości i długości geograficznej przed ich wyświetleniem? Przechowywanie parowanych szerokości i długości geograficznej z precyzją mniejszą niż 7 miejsc po przecinku powoduje błędy dokładności, gdy przechwycona ścieżka jest wyświetlana na mapie.
  • Czy używasz zakodowanych linii łamanych? Zakodowane wielokąty obcinają pary szerokości i długości geograficznej do 5 miejsc po przecinku, co powoduje błędy na kilkumetrach. W rezultacie linie są postrzępione lub oddalone od drogi przy dużych poziomach powiększenia.

Jeśli żaden z powyższych przypadków nie dotyczy sytuacji, elementy mapy zostały niedawno zaktualizowane, przez co nie są zsynchronizowane z indeksem drogi używanym do chwytania. Jeśli problem dotyczy tylko kilku zapytań, prawdopodobnie jest to spowodowane przyczyną. Mapy Google są aktualizowane regularnie, dlatego mogą się zdarzać częściej i częściej, jeśli regularnie widzisz stare ścieżki na mapie (na przykład ścieżki, które zostały zrobione kilka tygodni temu). Aby uzyskać optymalną wizualizację, należy ponownie uchwycić stare ścieżki tuż przed wyświetleniem ich na mapie, aby zminimalizować niespójności między kafelkami mapy i indeksem drogi używanym do uchwycenia.

Co może powodować nieprawidłowe wyświetlanie ograniczenia prędkości na drodze X?
Ograniczenia prędkości pochodzą z kilku źródeł, które różnią się dokładnością i zasięgiem. Jeśli zauważysz wzorce, np. ograniczenia prędkości dla konkretnego typu drogi na danym terenie, są stale błędne, wykonaj te czynności:
  1. Otwórz Mapy Google na komputerze LUB aplikację Mapy Google na Androida.
  2. Otwórz menu po lewej stronie.
  3. Wybierz Prześlij opinię. Uwaga: może pojawić się prośba o zalogowanie.
  4. Wybierz Edytuj mapę.
  5. Wybierz fragment drogi, który chcesz edytować.
  6. Kliknij Dalej.
  7. W polu „&"inny”> określ, czy ograniczenie prędkości jest nieprawidłowe dla tej drogi.
  8. Wybierz Prześlij.
Możesz też zgłosić inne problemy (np. jeśli droga ma nieprawidłową nazwę, jest nieprawidłowo zaznaczona, jest zamknięta lub prywatna).
Dlaczego wycinana jest moja narożna ścieżka, zamiast podążać za drogą?
Aby rozwiązać ten problem, sprawdź następujące kwestie:
  • Sprawdź, czy parametr interpolate ma wartość true.
  • Sprawdź, czy pierwotne punkty danych są próbkowane w odpowiednich odstępach czasu (co 1–10 sekund).
Dlaczego zwracam wiele fragmentów drogi na trasie, która nie ma ograniczeń prędkości?
Gdy parametr interpolate jest ustawiony na true, zapytanie przyciągające do drogi zwraca linię liniową ciągnącą się przez drogę narożne, krzywe i ronda. Jeśli krzywe drogi zostaną zakrzywione, zwrócimy kilka segmentów drogi, nawet jeśli nie zmienią się ograniczenia prędkości. W ten sposób utworzysz linię, która będzie dokładnie odpowiadać geometrii drogi.