Błędy
W przypadku błędu zwracana jest standardowa odpowiedź o błędzie, 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 co w 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 został uwzględniony cały klucz i czy interfejs API jest włączony dla tego klucza. |
| 400 | INVALID_ARGUMENT |
Parametr „path” zawiera nieprawidłową wartość: ☃ | Żądanie zawierało nieprawidłowe argumenty. Najczęstsze przyczyny tego błędu:
Ten błąd nie zostanie zwrócony, jeśli parametr |
| 403 | PERMISSION_DENIED |
Niezarejestrowane żądanie zostało zablokowane. Zarejestruj się w Google Developers Console. | Żądanie zostało odrzucone z co najmniej jednego z tych powodów:
Aby korzystać z usług Google Maps Platform, musisz włączyć płatności na swoim koncie, 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 ze względu na osiągnięcie limitów żądań projektu. | Przekroczono limit żądań skonfigurowany w Google Cloud Platform Console. Ten limit jest zwykle ustawiany jako liczba żądań dziennie, liczba żądań na 100 sekund i liczba żądań na 100 sekund na użytkownika. Ten limit należy skonfigurować tak, aby uniemożliwić jednemu użytkownikowi lub małej 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
Gdy żądania się nie powiodą, musisz zadbać o to, aby ponawiać je ze wzrastającym czasem do ponowienia. Jeśli na przykład żądanie nie powiedzie się raz, ponów je po sekundzie. Jeśli znów się nie powiedzie, ponów je po 2 sekundach, potem po 4 sekundach itd. Dzięki temu uszkodzone żądania lub awarie na dużą skalę nie spowodują przeciążenia serwerów Google, ponieważ wielu klientów próbuje ponawiać żądania bardzo szybko.
Najczęstsze pytania dotyczące rozwiązywania problemów
Problemy z implementacją
- Jak często mam pobierać lokalizację pojazdu?
- Aby uzyskać wysokiej jakości wyniki dopasowania do drogi, zalecamy pobieranie lokalizacji co 1–10 sekund.
- Czy istnieje limit liczby punktów, które mogę wysłać w zapytaniu?
- Tak, zapytanie może zawierać maksymalnie 100 punktów.
- Jaką dokładność mam stosować do przechowywania dopasowanych par szerokości i długości geograficznej?
- Aby dopasowane ścieżki były zgodne z drogami na wszystkich poziomach powiększenia, nawet na maksymalnym poziomie powiększenia, należy przechowywać dopasowane 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 dopasowanych ścieżek?
- Zakodowane linie łamane są określane tylko z dokładnością do 5 miejsc po przecinku, co powoduje błąd wynoszący około 2 metrów. Dlatego zakodowane linie łamane nie są odpowiednie, jeśli chcesz, aby dopasowane ścieżki były zgodne z drogą na wysokich poziomach powiększenia.
Typowe problemy
- Niektóre punkty nie są dopasowywane lub w dopasowanych ścieżkach występują luki. Jak mogę to naprawić?
-
- Jeśli pobierasz punkty w regularnych odstępach czasu, upewnij się, że są one pobierane w krótszych odstępach (co 1–10 sekund). Jeśli używasz dłuższego odstępu (np. 60 sekund), algorytm dopasowania do drogi może nie być w stanie określić dróg, którymi podróżowano, z wystarczającą dokładnością.
- Jeśli ręcznie klikasz mapę, aby utworzyć punkty, bardzo łatwo jest utworzyć ścieżki z niewielką liczbą punktów lub rzadko rozmieszczonych punktów, z którymi algorytm dopasowania nie radzi sobie dobrze. Algorytm dopasowania najlepiej działa w przypadku punktów, które są blisko siebie. Aby przetestować ścieżki, wypróbuj wersję demonstracyjną dopasowania do dróg lub użyj inspektora dróg.
- Dlaczego moje dopasowane ścieżki są poszarpane lub lekko przesunięte względem drogi, gdy powiększam mapę?
-
- Czy przed wyświetleniem dopasowanych par szerokości i długości geograficznej obcinasz ich dokładność? Przechowywanie dopasowanych par szerokości i długości geograficznej z precyzją mniejszą niż 7 miejsc po separatorze dziesiętnym powoduje błędy precyzji, gdy dopasowana ścieżka jest wyświetlana na mapie.
- Czy używasz zakodowanych linii łamanych? Zakodowane linie łamane obcinają pary szerokości i długości geograficznej do 5 miejsc po przecinku, co powoduje błąd wynoszący kilka metrów. W rezultacie linie są poszarpane lub lekko przesunięte względem drogi na wysokich poziomach powiększenia.
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 dopasowania. Jeśli dotyczy to tylko kilku zapytań, prawdopodobnie jest to przyczyna. Mapy Google są regularnie aktualizowane, więc może się to zdarzać sporadycznie. Może się to zdarzać częściej, jeśli regularnie przeglądasz stare ścieżki na mapie (np. ścieżki, które zostały dopasowane kilka tygodni temu). Aby uzyskać optymalną wizualizację, przed wyświetleniem starych ścieżek na mapie należy je ponownie dopasować. Pozwoli to zminimalizować niezgodności między kafelkami mapy a indeksem dróg używanym do dopasowania.
- 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 zasięgiem.
Jeśli zauważysz wzorzec, np. ograniczenia prędkości na określonym typie 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 boczne menu.
- Wybierz Prześlij opinię. Uwaga: może pojawić się prośba o zalogowanie się.
- Wybierz 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 moja dopasowana ścieżka skraca zakręty zamiast podążać drogą?
-
Aby rozwiązać ten problem, sprawdź te kwestie:
- Upewnij się, że parametr
interpolatejest ustawiony natrue. - Sprawdź, czy oryginalne punkty danych są pobierane w wystarczająco krótkich odstępach czasu (co 1–10 sekund).
- Upewnij się, że parametr
- Dlaczego w dopasowanej ścieżce dla drogi, na której nie ma zmian ograniczenia prędkości, otrzymuję wiele odcinków dróg?
- Gdy parametr
interpolatejest ustawiony natrue, zapytanie o dopasowanie do drogi zwraca linię łamaną, która podąża drogą wokół zakrętów, łuków i rond. Jeśli droga jest zakrzywiona, zwracanych jest wiele odcinków dróg, nawet jeśli ograniczenie prędkości się nie zmienia. Pozwala to utworzyć linię łamaną, która ściśle podąża za geometrią drogi.