Rozwiązywanie problemów

Błędy

W przypadku błędu zwracana jest treść odpowiedzi w standardowym formacie, a kod stanu HTTP jest ustawiany na stan błędu.

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

  • code: jest to ten sam stan co stan HTTP odpowiedzi.
  • message: krótki opis błędu.
  • status: kod stanu wskazujący charakter błędu.

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

{
  "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. Klucz interfejsu API jest nieprawidłowy lub nie został uwzględniony w żądaniu. Sprawdź, czy podany jest cały klucz i czy interfejs API jest dla niego włączony.
400 INVALID_ARGUMENT Parametr „"path"” zawiera nieprawidłową wartość: ☃”. Żądanie zawiera nieprawidłowe argumenty. Najczęstsze przyczyny tego błędu to:
  • problem z parametrem path,
    Sprawdź, czy masz co najmniej 1 punkt i mniej niż 100 punktów. Każdy punkt powinien być parą liczb oddzieloną przecinkiem, na przykład: 48.409114,-123.369158. Punkty powinny być rozdzielone pionową kreską: „|”.
  • Twoje żądanie zawiera nieprawidłową wartość placeId.
  • Twoje żądanie zawierało zarówno placeId, jak i path. W każdej prośbie można podać tylko jeden z tych parametrów.

Ten błąd nie zostanie zwrócony, jeśli placeId zostanie przekazany dla drogi, która już nie istnieje, lub dla miejsca, które nie jest drogą.

403 PERMISSION_DENIED Zablokowano żądanie bez rejestracji. Zarejestruj się w Google Developers Console. Prośba została odrzucona z jednego z tych powodów:
  • Brak klucza interfejsu API lub jest on nieprawidłowy.
  • Na Twoim koncie nie włączono płatności.
  • Przekroczono ustalony przez Ciebie limit wykorzystania.
  • podana forma płatności nie jest już ważna (np. karta kredytowa straciła ważność);

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

404 NOT_FOUND W przypadku tej usługi wymagane jest HTTPS. Upewnij się, że wysyłasz żądania do adresu https://roads.googleapis.com/, a nie http://roads.googleapis.com/.
429 RESOURCE_EXHAUSTED Żądanie zostało ograniczone z powodu osiągnięcia limitu żądań projektu. Przekroczono limit próśb skonfigurowany w konsoli Google Cloud Platform. Ten limit jest zwykle ustawiany jako liczba żądań na dzień, liczba żądań na 100 sekund i liczba żądań na 100 sekund na użytkownika. Ten limit powinien być skonfigurowany tak, aby uniemożliwić pojedynczym użytkownikom lub niewielkiej grupie użytkowników wyczerpanie dziennej puli, a jednocześnie zapewnić wszystkim użytkownikom odpowiedni dostęp. Aby skonfigurować te limity, zapoznaj się z artykułem Ograniczanie użycia interfejsu API.

Wzrastający czas do ponownej próby

Gdy żądania kończą się niepowodzeniem, należy je powtórzyć z użyciem algorytmu Exponential back-off. Jeśli np. żądanie nie powiedzie się za pierwszym razem, spróbuj ponownie po 1 sekundzie. Jeśli nie powiedzie się to ponownie, spróbuj po 2 sekundach, potem po 4 sekundach itd. Dzięki temu nie dochodzi do przeciążenia serwerów Google przez nieprawidłowe żądania lub błędy na dużą skalę, ponieważ wielu klientów próbuje bardzo szybko powtórzyć żądania.

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

Problemy z implementacją

Jak często należy pobierać próbki lokalizacji pojazdu?
Zalecamy, aby w przypadku wysokiej jakości wyników „gotowych do wdrożenia” stosować odstępy 1–10 sekund.
Czy istnieje limit liczby punktów, które mogę wysłać w przypadku jednego zapytania?
Tak, zapytanie może mieć maksymalnie 100 punktów.
Jakiego poziomu dokładności powinienem używać do przechowywania par współrzędnych szerokości i długości geograficznej?
Aby zapewnić, że ścieżki przycinane będą podążać za drogami na wszystkich poziomach powiększenia, nawet na maksymalnym poziomie powiększenia, pary współrzędnych przyciętej szerokości geograficznej i długości geograficznej należy przechowywać z dokładnością do 7 miejsc po przecinku.
Czy do wyświetlania ścieżek z przyciąganiem mogę używać zakodowanych linii łamanych?
Zarysowane wielokąty są określone tylko z dokładnością do 5 miejsc po przecinku, co powoduje błąd wynoszący około 2 metry. Dlatego zakodowane wielokąty nie są odpowiednie, jeśli chcesz, aby ścieżki przyciągane do siatki podążały za drogą przy dużym powiększeniu.

Typowe problemy

Niektóre punkty nie są dopasowywane lub występują luki w ścieżkach. Jak mogę to naprawić?
  • Jeśli próbkujesz punkty w określonych odstępach czasu, upewnij się, że są one próbkowane w krótszych odstępach (co 1–10 sekund). Jeśli użyjesz dłuższego przedziału (np. 60 sekund), algorytm dopasowywania do drogi może nie być w stanie określić przejechanych dróg z wystarczającą dokładnością.
  • Jeśli punkty na mapie tworzysz ręcznie, możesz łatwo tworzyć ścieżki z niewielką liczbą punktów lub z punktami rozrzuconymi, które algorytm łamania nie radzi sobie dobrze. Algorytm przyciągania działa najlepiej w przypadku punktów, które są blisko siebie. Aby przetestować ścieżki, możesz skorzystać z prezentacji funkcji Dopasowanie do dróg lub użyć inspektora dróg.
Dlaczego po przybliżeniu ścieżki są postrzępione lub nieco odbiegają od drogi?
  • Czy skracasz dokładność par współrzędnych geograficznych przed ich wyświetleniem? Przechowywanie par współrzędnych szerokości i długości geograficznej z dokładnością mniejszą niż 7 cyfr po przecinku powoduje błędy dokładności podczas wyświetlania na mapie ścieżki z zaokrąglonymi współrzędnymi.
  • Czy używasz zakodowanych wielokątów? Zakodowane linie wielokątne skracają pary współrzędnych szerokości i długości geograficznej do 5 miejsc po przecinku, co powoduje błąd kilku metrów. W wyniku linie są postrzępione lub nieco odbiegają od drogi przy dużym powiększeniu.

Jeśli żadna z tych opcji nie jest prawdziwa, kafelki mapy mogły zostać niedawno zaktualizowane, przez co mogą być niezsynchronizowane z indeksem dróg używanym do snapowania. Jeśli problem dotyczy tylko kilku zapytań, prawdopodobnie jest to przyczyna. Mapy Google są regularnie aktualizowane, więc czasami może się to zdarzyć. Może się to zdarzać częściej, jeśli regularnie przeglądasz stare ścieżki na mapie (np. ścieżki, które zostały utworzone kilka tygodni temu). Aby uzyskać optymalną wizualizację, przed wyświetleniem starych ścieżek należy je ponownie przyciąć, aby zminimalizować niezgodności między kafelkami mapy a indeksem dróg używanym do przycinania.

Co może spowodować nieprawidłowe wyświetlanie ograniczenia prędkości na drodze X?
Ograniczenia prędkości pochodzą z różnych źródeł o zmiennym stopniu dokładności i zasięgu. Jeśli zauważysz pewien schemat, np. że ograniczenia prędkości na drogach danego typu lub w danym obszarze są stale nieprawidłowe, poinformuj nas o tym w ten sposób:
  1. Otwórz Mapy Google na komputerze albo w aplikacji Mapy Google na urządzeniu z Androidem.
  2. Otwórz menu po lewej stronie.
  3. Wybierz Prześlij opinię. Uwaga: może pojawić się prośba o zalogowanie.
  4. Kliknij Edytuj mapę.
  5. Wybierz odcinek drogi, który chcesz edytować.
  6. Kliknij Dalej.
  7. W polu „Inne” zaznacz, że ograniczenie prędkości jest nieprawidłowe dla tej drogi.
  8. Wybierz Prześlij.
Tutaj możesz też zgłaszać inne problemy (np. jeśli droga ma nieprawidłową nazwę, jest nieprawidłowo narysowana, zamknięta lub prywatna).
Dlaczego ścieżka przypięta do ścieżki 3D ucina narożniki zamiast podążać za drogą?
Aby rozwiązać ten problem, sprawdź te kwestie:
  • Upewnij się, że parametr interpolate ma wartość true.
  • Sprawdź, czy oryginalne punkty danych są próbkowane w odpowiednich odstępach czasu (co 1–10 sekund).
Dlaczego na ścieżce przyklejonej do drogi z niezmiennym ograniczeniem prędkości zwracanych jest tak dużo odcinków drogi?
Jeśli parametr interpolate ma wartość true, zapytanie dotyczące dopasowania do drogi zwraca linię łamaną, która podąża za drogą wokół zakrętów, łuków i ronda. Jeśli droga jest kręta, zwracane są różne jej odcinki, nawet jeśli limit prędkości się nie zmienia, aby utworzyć polilinię, która dokładnie odzwierciedla geometrię drogi.