Rozwiązywanie problemów

Błędy

W przypadku błędu zwracana jest treść odpowiedzi w standardowym formacie, a kod stanu HTTP zostanie ustawiony jako błąd.

Odpowiedź zawiera obiekt z jednym obiektem error z tymi kluczami:

  • code: jest to taki sam stan jak odpowiedź HTTP.
  • message: krótki opis błędu.
  • status: kod stanu oznaczający charakter błędu.

Na przykład wysłanie nieprawidłowego parametru placeId spowoduje wyświetlenie 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 dodano cały klucz i czy włączono dla niego interfejs API.
400 INVALID_ARGUMENT Parametr „\"ścieżka\" zawiera nieprawidłową wartość: ☃" Żądanie zawiera nieprawidłowe argumenty. Najczęstsze przyczyny tego błędu:
  • Wystąpił problem z parametrem path.
    Upewnij się, że masz co najmniej 1 punkt, i mniej niż 100 punktów. Każdy punkt powinien być parą liczb rozdzielonych przecinkami, np. 48.409114,-123.369158. Punkty powinny być oddzielone pionową kreską: „|”.
  • Twoja prośba zawiera nieprawidłową wartość placeId.
  • Żądanie zawierało placeId oraz path. W każdym żądaniu można określić tylko jeden z tych parametrów.

Ten błąd nie zostanie zwrócony, jeśli obiekt placeId nie istnieje, a jej droga już nie istnieje.

403 PERMISSION_DENIED Niezarejestrowana prośba została zablokowana. Zarejestruj się, używając 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.
  • Samodzielnie ustawiony limit wykorzystania.
  • Podana forma płatności jest już nieważna (np. karta kredytowa straciła ważność).

Aby można było korzystać z usług Google Maps Platform, na 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 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 ustawiany jako żądania dziennie, żądania na 100 sekund i żądania na 100 sekund na użytkownika. Ten limit powinien być skonfigurowany w taki sposób, aby pojedynczą grupę lub niewielką grupę użytkowników nie wyczerpała dziennego limitu, a jednocześnie miał rozsądny dostęp do wszystkich użytkowników. Te limity możesz skonfigurować w artykule Capping API Usage (Ograniczenia użycia interfejsu API).

Wykładnicze ponowienie

Gdy żądania kończą się niepowodzeniem, pamiętaj, aby ponowić próbę. Jeśli na przykład żądanie nie powiedzie się raz, spróbuj ponownie za 2 sekundy, jeśli się nie uda, spróbuj ponownie za 2 sekundy, 4 sekundy itd. Dzięki temu uszkodzone żądania lub awarie na dużą skalę nie zapełniają serwerów Google, ponieważ wielu klientów próbuje ponawiać próby bardzo szybko.

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

Problemy z implementacją

Z jaką częstotliwością mam sprawdzać lokalizację pojazdu?
Co 1–10 sekund zaleca się ustawienie wysokiej jakości przyciągania do drogi.
Czy istnieje limit liczby punktów, które mogę wysłać na jedno zapytanie?
Tak, zapytanie może mieć maksymalnie 100 punktów.
Jakiego poziomu dokładności powinienem używać do przechowywania parowanych szerokości i długości geograficznej?
Aby mieć pewność, że przyciągnięte ścieżki będą przesuwać się po wszystkich poziomach powiększenia, nawet przy maksymalnym powiększeniu, zapisz współrzędne szerokości i długości geograficznej w dokładności do 7 miejsc po przecinku.
Czy mogę wyświetlać zakodowane ścieżki za pomocą zakodowanych linii łamanych?
Zakodowane linie łamane są określane z dokładnością do 5 miejsc po przecinku, co powoduje błąd około 2 metrów. Zakodowane linie łamane nie są więc odpowiednie, jeśli chcesz, aby przyciągnięte ścieżki przesuwały się wzdłuż drogi przy dużym powiększeniu.

Częste problemy

Niektóre punkty nie są przyciągane lub mam luki w przyciąganych ścieżkach. Jak mogę to poprawić?
  • Jeśli próbkujesz punkty w interwałach czasowych, staraj się wykorzystywać ich punkty w krótszych odstępach czasu (co 1–10 sekund). W przypadku dłuższego interwału (na przykład 60 sekund) algorytm przyciągania drogi może nie być w stanie określić wystarczającej liczby przebytych dróg.
  • Jeśli ręcznie klikasz mapę, aby utworzyć punkty, możesz z łatwością utworzyć ścieżki z kilkoma punktami lub z opóźnieniem, jeśli algorytm przyciągania nie działa dobrze. Algorytm przyciągania działa najlepiej w przypadku punktów, które są blisko siebie. Wypróbuj wersję demonstracyjną przyciągania do dróg lub użyj inspektora drogi, aby przetestować swoje ścieżki.
Dlaczego po powiększeniu widoczne przeze mnie przycięte ścieżki są nieregularne lub nieznacznie oddalone od drogi?
  • Czy skracasz precyzję zwiniętych par szerokości i długości geograficznej przed ich wyświetleniem? Przechowywanie załadowanych par szerokości i długości geograficznej z dokładnością do mniej niż 7 miejsc po przecinku powoduje błędy dokładności, gdy wyświetlana jest na mapie uchwycona ścieżka.
  • Czy używasz zakodowanych linii łamanych? Zakodowane linie łamliwe tworzą obcinanie par szerokości i długości geograficznej do 5 miejsc po przecinku, co powoduje błąd o długości kilku metrów, powodując, że linie są wyrównywane lub odsunięte od drogi przy dużym powiększeniu.

Jeśli żaden z powyższych przypadków nie dotyczy tej sytuacji, być może najnowsze fragmenty map zostały zaktualizowane i w rezultacie nie są zsynchronizowane z indeksem drogi służącym do przechwytywania. Jeśli problem dotyczy tylko kilku zapytań, prawdopodobnie jest to ich przyczyną. Mapy Google są aktualizowane regularnie, dlatego czasami mogą pojawiać się częściej, jeśli regularnie patrzysz na mapę na starych ścieżkach (np. na ścieżkach zrobionych kilka tygodni temu). Aby uzyskać optymalną wizualizację, należy ponownie uchwycić stare ścieżki przed wyświetleniem ich na mapie w celu zminimalizowania niespójności między kafelkami mapy a indeksem drogi używanym do przechwytywania.

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 znajdziesz wzorzec, na przykład ograniczenia prędkości dotyczące określonego typu drogi na danym obszarze, lub informacje o błędach na danym obszarze stale się mylą, wykonaj te czynności:
  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. Kliknij Edytuj mapę.
  5. Wybierz fragment drogi, który chcesz edytować.
  6. Kliknij Dalej.
  7. W polu „Inne” wskaż, że na tej drodze obowiązuje ograniczenie prędkości.
  8. Wybierz Prześlij.
Tutaj możesz też zgłosić inne problemy (np. jeśli droga ma nieprawidłową nazwę, jest nieprawidłowo zaznaczona, zamknięta lub jest prywatna).
Dlaczego przyciągnięta ścieżka obcina rogi drogi, a nie jej podążanie?
Aby rozwiązać ten problem, wykonaj te czynności:
  • Sprawdź, czy parametr interpolate ma wartość true.
  • Próbkowanie pierwotnych punktów danych w odpowiednich odstępach czasu (co 1–10 sekund)
Dlaczego na skróconej ścieżce dla drogi bez zmiany limitu prędkości wyświetla się wiele fragmentów?
Gdy parametr interpolate jest ustawiony na true, zapytanie przyciągające do drogi zwraca linię łamaną wzdłuż drogi wokół rogów, krzywych i rond. Jeśli krzywe drogi się zwracają, taki obszar może zostać zwrócony nawet wtedy, gdy nie zmieni się ograniczenie prędkości. W ten sposób powstanie linia łamana zbliżona do geometrii drogi.