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:
Ten błąd nie zostanie zwrócony, jeśli |
403 | PERMISSION_DENIED |
Zablokowano żądanie bez rejestracji. Zarejestruj się w Google Developers Console. | Prośba została odrzucona z jednego z tych powodów:
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:
- Otwórz Mapy Google na komputerze albo w aplikacji Mapy Google na urządzeniu z Androidem.
- Otwórz menu po lewej stronie.
- Wybierz Prześlij opinię. Uwaga: może pojawić się prośba o zalogowanie.
- Kliknij Edytuj mapę.
- Wybierz odcinek drogi, który chcesz edytować.
- Kliknij Dalej.
- W polu „Inne” zaznacz, że ograniczenie prędkości jest nieprawidłowe dla tej drogi.
- Wybierz Prześlij.
- 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).
- Upewnij się, że parametr
- 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.