Błędy
W przypadku błędu zwracana jest treść odpowiedzi o błędzie w standardowym formacie, a kod stanu HTTP jest ustawiany na stan błędu.
Odpowiedź zawiera obiekt z pojedynczym obiektem error
z tymi kluczami:
code
: jest to ten sam kod stanu 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 zwrócenie 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. | Klucz interfejsu API jest nieprawidłowy lub nie został uwzględniony w żądaniu. Sprawdź, czy klucz został w całości uwzględniony i czy interfejs API jest w jego przypadku włączony. |
400 | INVALID_ARGUMENT |
„Parametr \"path\" zawiera nieprawidłową wartość: ☃” | Żądanie zawierało nieprawidłowe argumenty. Najczęstsze przyczyny tego błędu to:
Ten błąd nie zostanie zwrócony, jeśli w przypadku drogi, która już nie istnieje, lub miejsca, które nie jest drogą, zostanie przekazana wartość |
403 | PERMISSION_DENIED |
Niezarejestrowane żądanie zostało zablokowane. Zarejestruj się w Google Developers Console. | Prośba została odrzucona z jednego lub kilku z tych powodów:
Aby korzystać z usług Google Maps Platform, musisz mieć włączone płatności na koncie, a wszystkie żądania muszą zawierać prawidłowy klucz interfejsu API. Aby rozwiązać ten problem, wykonaj te czynności:
|
404 | NOT_FOUND |
W przypadku tej usługi wymagany jest protokół 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ń projektu. | Przekroczono limit żądań skonfigurowany w konsoli Google Cloud Platform. Ten limit jest zwykle określany jako liczba żądań dziennie, liczba żądań na 100 sekund i liczba żądań na 100 sekund na użytkownika. Ten limit powinien być skonfigurowany tak, aby uniemożliwić jednemu użytkownikowi lub niewielkiej grupie użytkowników wyczerpanie dziennego limitu, a jednocześnie zapewnić wszystkim użytkownikom rozsądny dostęp. Aby skonfigurować te limity, zapoznaj się z artykułem Ograniczanie wykorzystania interfejsu API. |
Wzrastający czas do ponowienia
Jeśli żądania się nie powiodą, należy je ponawiać z algorytmem Exponential backoff. Jeśli np. żądanie nie powiedzie się raz, ponów próbę po sekundzie. Jeśli znowu się nie powiedzie, ponów próbę po 2 sekundach, potem po 4 sekundach itd. Dzięki temu uszkodzone żądania lub awarie na dużą skalę nie przeciążają serwerów Google, ponieważ wielu klientów bardzo szybko próbuje ponownie wysłać żądania.
Najczęstsze pytania dotyczące rozwiązywania problemów
Problemy z implementacją
- Z jaką częstotliwością mam próbkować lokalizację pojazdu?
- Aby uzyskać wysokiej jakości wyniki przyciągania do drogi, zalecamy interwał 1–10 sekund.
- Czy istnieje limit liczby punktów, które mogę wysłać w jednym zapytaniu?
- Tak, zapytanie może zawierać maksymalnie 100 punktów.
- Jaką dokładność należy zastosować do przechowywania przyciągniętych par współrzędnych geograficznych?
- Aby zapewnić, że przyciągnięte ścieżki będą przebiegać wzdłuż dróg na wszystkich poziomach powiększenia, nawet na maksymalnym poziomie powiększenia, należy przechowywać przyciągnięte pary szerokości i długości geograficznej z dokładnością do 7 miejsc po przecinku.
- Czy mogę używać zakodowanych linii łamanych do wyświetlania przyciągniętych ścieżek?
- Zakodowane polilinie są określane z dokładnością do 5 miejsc po przecinku, co powoduje błąd wynoszący około 2 metrów. Zakodowane linie łamane nie nadają się więc, jeśli chcesz, aby przyciągnięte ścieżki przebiegały wzdłuż drogi przy dużym powiększeniu.
Typowe problemy
- Niektóre punkty nie są przyciągane lub w przyciągniętych ścieżkach są luki. Jak mogę to poprawić?
-
- Jeśli próbkowanie punktów odbywa się w określonych odstępach czasu, zadbaj o to, aby były one krótsze (co 1–10 sekund). Jeśli użyjesz dłuższego interwału (np. 60 sekund), algorytm przyciągania do drogi może nie być w stanie określić przebytych dróg z wystarczającą dokładnością.
- Jeśli klikasz mapę ręcznie, aby utworzyć punkty, możesz łatwo utworzyć ścieżki z małą liczbą punktów lub rzadko rozmieszczonymi punktami, z którymi algorytm przyciągania nie radzi sobie dobrze. Algorytm przyciągania działa najlepiej w przypadku punktów, które są blisko siebie. Wypróbuj demonstrację przyciągania do dróg lub użyj inspektora dróg, aby przetestować ścieżki.
- Dlaczego po powiększeniu przyciągnięte ścieżki są poszarpane lub nieco odbiegają od drogi?
-
- Czy przed wyświetleniem przycinasz precyzję przyciągniętych par szerokości i długości geograficznej? Przechowywanie przyciągniętych par długości i szerokości geograficznej z dokładnością mniejszą niż 7 miejsc po przecinku powoduje błędy precyzji, gdy przyciągnięta ścieżka jest wyświetlana na mapie.
- Czy używasz zakodowanych linii łamanych? Zakodowane polilinie obcinają pary szerokości i długości geograficznej do 5 miejsc po przecinku, co wprowadza błąd rzędu kilku metrów. W rezultacie linie są poszarpane lub przy dużych poziomach powiększenia nieco odbiegają od drogi.
Jeśli żadna z powyższych sytuacji nie ma miejsca, kafelki mapy mogły zostać niedawno zaktualizowane, co spowodowało ich rozsynchronizowanie z indeksem dróg używanym do przyciągania. Jeśli problem dotyczy tylko kilku zapytań, prawdopodobnie to jest jego przyczyna. Mapy Google są regularnie aktualizowane, więc takie sytuacje mogą się zdarzać. Mogą one występować częściej, jeśli regularnie przeglądasz stare ścieżki na mapie (np. ścieżki, które zostały przyciągnięte kilka tygodni temu). Aby uzyskać optymalną wizualizację, tuż przed wyświetleniem starych ścieżek na mapie należy ponownie przyciągnąć je do dróg, aby zminimalizować niezgodności między kafelkami mapy a indeksem dróg używanym do przyciągania.
- Co może powodować nieprawidłowe wyświetlanie ograniczenia prędkości na drodze X?
- Ograniczenia prędkości pochodzą z różnych źródeł, które różnią się dokładnością i zakresem.
Jeśli zauważysz wzorzec, np. ograniczenia prędkości dla określonego typu drogi lub w określonym obszarze są stale nieprawidłowe, wykonaj te czynności, aby nas o tym poinformować:
- Otwórz Mapy Google na komputerze lub aplikację Mapy Google na Androida.
- Otwórz menu po lewej stronie.
- Wybierz Prześlij opinię. Uwaga: może pojawić się prośba o zalogowanie się.
- Kliknij Edytuj mapę.
- Wybierz odcinek drogi, który chcesz edytować.
- Kliknij Dalej.
- W polu „Inne” zaznacz, że ograniczenie prędkości na tej drodze jest nieprawidłowe.
- Wybierz Prześlij.
- Dlaczego przyciągnięta ścieżka skraca drogę zamiast podążać za drogą?
-
Aby rozwiązać ten problem, sprawdź te kwestie:
- Sprawdź, czy parametr
interpolate
ma wartośćtrue
. - Sprawdź, czy oryginalne punkty danych są próbkowane w wystarczająco krótkich odstępach czasu (co 1–10 sekund).
- Sprawdź, czy parametr
- Dlaczego w przypadku drogi, na której nie ma zmian ograniczenia prędkości, w przyciągniętej ścieżce otrzymuję wiele odcinków drogi?
- Gdy parametr
interpolate
ma wartośćtrue
, zapytanie o przyciąganie do drogi zwraca linię łamaną, która przebiega wzdłuż drogi na zakrętach, łukach i rondach. Jeśli droga jest zakrzywiona, zwracanych jest wiele odcinków drogi, nawet jeśli ograniczenie prędkości się nie zmienia. Ma to na celu utworzenie linii łamanej, która ściśle odpowiada geometrii drogi.