Rozwiązywanie problemów

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 jednym obiektem error o tych kluczach:

  • code: ta sama wartość jest taka sama jak 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 zwrócenie tego błędu:

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

Możliwe błędy:

Kod Stan przekaz, 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 podano cały klucz i czy dla tego klucza włączony jest interfejs API.
400 INVALID_ARGUMENT Parametr „path” zawiera nieprawidłową wartość: ☃ Żądanie zawiera nieprawidłowe argumenty. Najbardziej prawdopodobne przyczyny tego błędu:
  • Problem z parametrem path.
    Upewnij się, że masz co najmniej 1, ale mniej niż 100 punktów. Każdy punkt powinien się składać z pary liczb rozdzielonych przecinkami, na przykład: 48.409114,-123.369158. Punkty powinny być rozdzielone pionową kreską: „|”.
  • Żądanie zawiera nieprawidłowy element placeId.
  • Twoja prośba obejmowała zarówno placeId, jak i path. Dla każdego żądania można określić tylko jeden z tych parametrów.

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

403 PERMISSION_DENIED Niezarejestrowane żądanie zostało zablokowane. Zarejestruj się za pomocą 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.
  • Przekroczono nałożony samodzielnie limit wykorzystania.
  • Podana forma płatności straciła ważność (na przykład wygasła karta kredytowa).

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

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 limitu żądań projektu. Przekroczono limit żądań skonfigurowany w konsoli Google Cloud Platform. Ten limit jest zwykle ustawiany na liczbę żądań dziennie, żądań na 100 sekund i żądań na 100 sekund na użytkownika. Ten limit należy skonfigurować tak, aby nie dopuścić do wyczerpania dziennego limitu przez pojedynczą lub małą grupę użytkowników, a jednocześnie zapewnić uzasadniony dostęp wszystkim użytkownikom. Informacje o konfigurowaniu tych limitów znajdziesz w sekcji Ograniczanie wykorzystania interfejsu API.

Wykładniczy czas do ponowienia

W przypadku niepowodzenia żądań należy ponawiać żądania ze wzrastającym czasem do ponowienia. Jeśli np. żądanie nie powiedzie się raz, spróbuj ponownie po sekundzie, a jeśli znowu się nie uda, spróbuj jeszcze raz po 2 sekundach, potem 4 sekundach itd. Dzięki temu nieprawidłowe żądania lub awarie na dużą skalę nie zapełniają serwerów Google, ponieważ wiele klientów próbuje bardzo szybko ponawiać żądania.

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

Problemy z implementacją

Z jaką częstotliwością należy pobierać próbki lokalizacji pojazdu?
Aby uzyskać wysokiej jakości przyciąganie do drogi, zalecamy ustawienie co 1–10 sekund.
Czy istnieje ograniczenie liczby punktów, które mogę wysłać w jednym zapytaniu?
Tak, zapytanie może mieć maksymalnie 100 punktów.
Jakiego poziomu dokładności należy użyć, aby zapisywać pary szerokości i długości geograficznej po przyciągnięciu?
Aby mieć pewność, że przyciągane ścieżki biegną wzdłuż dróg na wszystkich poziomach powiększenia, nawet przy maksymalnym powiększeniu, zapisz pary szerokości i długości geograficznej z dokładnością do 7 miejsc po przecinku.
Czy do wyświetlania przyciągniętych ścieżek mogę użyć zakodowanych linii łamanych?
Zakodowane linie łamane 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 są więc odpowiednie, jeśli chcesz, by przyciągnięte ścieżki biegły po drodze przy dużym powiększeniu.

Typowe problemy

Niektóre punkty nie są przyciągane lub mam luki w przyciągniętych ścieżkach. Jak to poprawić?
  • Jeśli próbkujesz punkty w odstępach czasowych, dopilnuj, aby były one próbkowane w krótszych odstępach (co 1–10 sekund). Jeśli używany jest dłuższy odstęp (np. 60 sekund), algorytm przyciągania do drogi może nie być w stanie określić dróg z wystarczającą dokładnością.
  • Jeśli ręcznie klikasz mapę, by utworzyć punkty, łatwo jest utworzyć ścieżki z niewielką liczbą punktów lub rozproszonymi punktami, których algorytm przyciągania nie obsługuje dobrze. Algorytm przyciągania działa najlepiej w przypadku punktów, które znajdują się blisko siebie. Aby przetestować ścieżki, wypróbuj wersję demonstracyjną Przyciągaj do dróg lub użyj inspektora dróg.
Dlaczego moje przyciągnięte ścieżki są postrzępione lub nieznacznie oddalone od drogi przy powiększeniu?
  • Czy zmniejszasz precyzję skręconych par szerokości i długości geograficznej przed ich wyświetleniem? Przechowywanie przechwyconych par szerokości i długości geograficznej z dokładnością do co najmniej 7 miejsc po przecinku powoduje błędy precyzji podczas wyświetlania przypiętej ścieżki na mapie.
  • Czy używasz zakodowanych linii łamanych? Zakodowane linie łamane powodują obcięcie par szerokości i długości geograficznej do 5 miejsc po przecinku. Powoduje to błąd sięgający kilku metrów, a linie są postrzępione lub nieznacznie oddalone od drogi przy dużym powiększeniu.

Jeśli żadna z powyższych sytuacji nie występuje, fragmenty mapy mogły zostać niedawno zaktualizowane, przez co nie są zsynchronizowane z indeksem dróg używanym do przyciągania. Jeśli problem dotyczy tylko kilku zapytań, prawdopodobnie jest on przyczyną problemów. Ponieważ Mapy Google są regularnie aktualizowane, taka sytuacja może mieć miejsce od czasu do czasu. Może też występować częściej, jeśli regularnie sprawdzasz stare trasy na mapie (na przykład trasy zapisane kilka tygodni temu). Aby uzyskać optymalną wizualizację, należy ponownie przyciągnąć stare ścieżki tuż przed ich wyświetleniem na mapie, tak aby zminimalizować niespójności między fragmentami mapy a indeksem dróg użytymi do ich przyciągania.

Co może spowodować, że ograniczenie prędkości na drodze X wyświetli się nieprawidłowo?
Ograniczenia prędkości pochodzą z kilku źródeł, które różnią się pod względem dokładności i zasięgu. Jeśli zauważysz wzorzec, np. ograniczenia prędkości dla konkretnego typu drogi lub na danym obszarze są stale nieprawidłowe, wykonaj te czynności, aby nas o tym poinformować:
  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 „Inne” wskaż, że ograniczenie prędkości na danej drodze jest nieprawidłowe.
  8. Wybierz Prześlij.
W tym miejscu możesz też zgłaszać inne problemy (np. jeśli droga ma nieprawidłową nazwę, jest nieprawidłowo zaznaczona, jest zamknięta lub prywatna).
Dlaczego moja zapisana ścieżka przecina narożniki, a nie idzie za drogą?
Aby rozwiązać ten problem:
  • Upewnij się, że parametr interpolate ma wartość true.
  • Sprawdź, czy pierwotne punkty danych są próbkowane w wystarczających odstępach czasu (co 1–10 sekund).
Dlaczego na skróconej ścieżce zwracam wiele fragmentów drogi bez zmian ograniczeń prędkości?
Gdy parametr interpolate ma wartość true, zapytanie przyciągania do drogi zwraca linię łamaną, która przebiega wzdłuż drogi wokół narożników, krzywych i rond. W przypadku krzywych dróg zwracanych jest wiele fragmentów drogi, nawet jeśli ograniczenie prędkości się nie zmienia, w celu utworzenia linii łamanej ściśle dopasowanej do geometrii drogi.