Oto kilka wskazówek, jak rozwiązać typowe problemy.
Dlaczego promień dokładności jest bardzo duży?
Jeśli odpowiedź Geolocation zawiera bardzo wysoką wartość w polu dokładności, usługa może określać geolokalizację na podstawie adresu IP żądania, a nie punktów Wi-Fi czy stacji bazowych. Takie odpowiedzi mogą się pojawić, jeśli usługa nie rozpoznaje żadnych stacji bazowych ani punktów dostępu.
Aby potwierdzić, że usługa nie mogła określić geolokalizacji punktów dostępu, ustaw w żądaniu wartość considerIp na false. Jeśli odpowiedź to 404, oznacza to, że nie udało się określić geolokalizacji obiektów wifiAccessPoints i cellTowers.
Jak rozwiązać problem z błędem odpowiedzi?
Jeśli żądanie wygeneruje błąd, system zwróci treść odpowiedzi o błędzie w standardowym formacie i ustawi kod stanu HTTP na stan błędu.
Odpowiedź o błędzie zawiera obiekt z pojedynczym obiektem błędu z tymi kluczami:
code: jest taki sam jak stan HTTP odpowiedzi.message: krótki opis błędu.errors: lista błędów, które wystąpiły. Każdy błąd zawiera identyfikator typu błędu (przyczynę) i krótki opis (komunikat).
Na przykład wysłanie nieprawidłowego kodu JSON powoduje zwrócenie tego błędu:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error",
}
],
"code": 400,
"message": "Parse Error"
}
}
Zbieranie informacji o testach z urządzeń
Aby przeprowadzić dodatkowe testy, możesz zebrać informacje z urządzenia, korzystając z wbudowanych usług lokalizacyjnych oferowanych przez każdą platformę:
Urządzenia z Androidem: użyj interfejsu API LocationManager lub dostawcy uśrednionej lokalizacji.
Urządzenia z iOS: użyj platformy Apple Core Location.
Opisy błędów
Oto możliwe błędy, które możesz napotkać, wraz z opisami.
| Przyczyna | Domena | Kod stanu HTTP | Opis |
|---|---|---|---|
dailyLimitExceeded |
usageLimits |
403 | Przekroczono limit dzienny. |
keyInvalid |
usageLimits |
400 | Klucz interfejsu API jest nieprawidłowy w przypadku interfejsu Geolocation API. Pamiętaj, aby podać cały klucz i kupić interfejs API lub włączyć płatności i aktywować interfejs API, aby uzyskać bezpłatny limit. |
userRateLimitExceeded |
usageLimits |
403 | Przekroczono limit żądań skonfigurowany w konsoli Google Cloud. Ten limit jest zwykle ustawiany jako liczba żądań dziennie, żądań na 100 sekund i żądań na 100 sekund na użytkownika. Limit należy skonfigurować tak, aby uniemożliwić pojedynczemu 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. |
notFound |
geolocation |
404 | Żądanie było prawidłowe, ale nie zwrócono żadnych wyników. |
parseError |
global |
400 | Treść żądania nie jest prawidłowym kodem JSON. Szczegółowe informacje o każdym polu znajdziesz w sekcji Treść żądania. |