Rozwiązywanie problemów

Błędy

W przypadku błędu zwracana jest treść odpowiedzi zawierającej błąd w standardowym formacie, a kod stanu HTTP jest zwracany na stan błędu.

Odpowiedź zawiera obiekt z pojedynczym obiektem error o tych kluczach:

  • code: jest taki sam 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 takiego 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. Klucz interfejsu API jest nieprawidłowy lub nie został uwzględniony w żądaniu. Sprawdź, czy został uwzględniony cały klucz i czy dla tego klucza został włączony 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 punkt, ale mniej niż 100. Każdy punkt powinien być parą liczb rozdzielonych przecinkami, np. 48.409114,-123.369158. Punkty powinny być rozdzielone pionową kreską: „|”.
  • Żądanie zawiera nieprawidłowy element placeId.
  • Twoja prośba obejmuje zarówno elementy placeId, jak i path. W przypadku każdego żądania można podać tylko jeden z tych parametrów.

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

403 PERMISSION_DENIED Niezarejestrowana prośba została zablokowana. Zarejestruj się przez Google Developers Console. Żądanie zostało odrzucone 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.
  • Nałożony przez Ciebie limit wykorzystania został przekroczony.
  • Podana forma płatności straciła ważność (np. wygasła karta kredytowa).

Aby można było korzystać z usług Google Maps Platform, na Twoim koncie muszą być włączone płatności, a wszystkie żądania muszą zawierać prawidłowy klucz interfejsu API. Aby rozwiązać ten problem, wykonaj te czynności:

404 NOT_FOUND Ta usługa wymaga protokołu HTTPS. Upewnij się, że wysyłasz żądania do domeny https://roads.googleapis.com/, a nie do http://roads.googleapis.com/.
429 RESOURCE_EXHAUSTED Żądanie zostało ograniczone z powodu przekroczenia limitów żądań w projekcie. Przekroczono limit żądań skonfigurowany w konsoli Google Cloud Platform. Ten limit jest zwykle ustawiany jako żądania dziennie, na 100 sekund i na 100 sekund na użytkownika. Ten limit należy skonfigurować tak, aby zapobiec wykorzystaniu limitu dziennego przez jedną lub małą grupę użytkowników, jednocześnie zapewniając rozsądny dostęp dla wszystkich użytkowników. Informacje o tym, jak skonfigurować te limity, znajdziesz w sekcji Capping API Usage.

Ponawianie wykładnicze

Jeśli żądania kończą się niepowodzeniem, ponawiaj je ze wzrastającym czasem do ponowienia. Jeśli na przykład żądanie raz się nie powiedzie, ponawiaj po sekundzie, jeśli znowu się nie uda, ponów próbę po 2 sekundach, następnie 4 sekundach itd. Dzięki temu uszkodzone żądania lub awarie na dużą skalę nie wypeł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ą

Jak często mam sprawdzać lokalizację pojazdu?
Aby uzyskać wysokiej jakości dopasowanie do drogi, zalecamy ustawienie co 1–10 sekund.
Czy istnieje limit punktów, które mogę wysłać za jedno zapytanie?
Tak. Zapytanie może mieć maksymalnie 100 punktów.
Jakiego poziomu dokładności mam używać do zapisywania zapisanych par szerokości i długości geograficznej?
Aby przyciągnąć przyciągane ścieżki po drogach przy każdym poziomie powiększenia, nawet przy maksymalnym powiększeniu, musisz zapisywać przyciągane pary szerokości i długości geograficznej z dokładnością do 7 miejsc po przecinku.
Czy do wyświetlania przyciąganych ścieżek można używać zakodowanych linii łamanych?
Zakodowane linie łamane są określane z dokładnością do 5 miejsc po przecinku, co daje błąd około 2 metrów. Kodowane linie łamane nie są więc odpowiednie, 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óbujesz punktów w odstępach czasowych, zadbaj o to, aby Twoje punkty były próbkowane w krótszych odstępach czasu (co 1–10 sekund). Jeśli użyjesz dłuższego odstępu (np. 60 sekund), algorytm przyciągania do drogi może nie być w stanie określić pokonanych dróg z wystarczającą dokładnością.
  • Jeśli ręcznie klikasz mapę, aby utworzyć punkty, bardzo łatwo możesz utworzyć ścieżki z kilkoma punktami lub rzadkimi punktami, którymi nie radzi sobie algorytm przyciągania. Algorytm przyciągania działa najlepiej w przypadku punktów, które są blisko siebie. Skorzystaj z prezentacji funkcji Przyciągaj do dróg lub skorzystaj z inspektora dróg, aby przetestować swoje ścieżki.
Dlaczego przyciągane ścieżki są nieregularne lub nieznacznie oddalone od drogi przy powiększeniu?
  • Czy precyzja przyciąganych par szerokości i długości geograficznej przed ich wyświetleniem jest zmniejszona? Przechowywanie pobranych par szerokości i długości geograficznej z dokładnością do mniej niż 7 miejsc po przecinku powoduje błędy precyzji, gdy wyświetlana ścieżka jest wyświetlana na mapie.
  • Czy używasz zakodowanych linii łamanych? Zakodowane linie łamane skracają pary szerokości i długości geograficznej do 5 miejsc po przecinku, co powoduje błąd rzędu kilku metrów, a przy dużym powiększeniu linie są nieregularne lub nieznacznie oddalone od drogi.

Jeśli żadna z tych sytuacji nie pasuje do Twojej sytuacji, fragmenty mapy mogły zostać niedawno zaktualizowane, przez co przestały być zsynchronizowane z indeksem drogi używanym do przyciągania. Jeśli problem dotyczy tylko kilku zapytań, prawdopodobnie to jest przyczyną. Mapy Google są regularnie aktualizowane, więc może się to zdarzać od czasu do czasu i częściej, jeśli regularnie sprawdzasz na mapie stare ścieżki (np. ścieżki zrobione kilka tygodni temu). Aby uzyskać optymalną wizualizację, zaciągnij stare ścieżki tuż przed ich pokazaniem na mapie, aby zminimalizować niespójności między fragmentami mapy a indeksem dróg używanym do przyciągania.

Co może spowodować nieprawidłowe wyświetlanie ograniczenia prędkości na drodze X?
Ograniczenia prędkości pochodzą z kilku źródeł, które różnią się dokładnością i zasięgiem. Jeśli znajdziesz wzorzec, np. ograniczenie prędkości dla określonego typu drogi lub na określonym obszarze, poinformuj nas o tym:
  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łosić inne problemy (na przykład jeśli droga ma nieprawidłową nazwę, jest nieprawidłowo zaznaczona, jest zamknięta lub prywatna).
Dlaczego kręcona przeze mnie ścieżka cięcia skręca, a nie podąża wzdłuż drogi?
Aby rozwiązać ten problem, sprawdź następujące elementy:
  • Upewnij się, że parametr interpolate jest ustawiony na true.
  • Sprawdź, czy pierwotne punkty danych są próbkowane w odpowiednich odstępach czasu (co 1–10 sekund).
Dlaczego na trasie, na której nie ma zmian ograniczeń prędkości, pojawia się wiele fragmentów drogi?
Gdy parametr interpolate ma wartość true, zapytanie przyciągania do drogi zwraca linię łamaną, która biegnie wzdłuż drogi wokół narożników, krzywych i rond. W przypadku krzywych drogi 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.