1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek (głosów: 1, średnia ocena: 5,00)
Loading...Loading...

Obsługa błędów

W rozdziale:

Obsługa błędów

Geolokalizacja to skomplikowane zagadnienie. Wiele rzeczy może się nie udać. Wspomniałem już o konieczności uzyskania zgody użytkownika. Jeśli nie uda się jej uzyskać, nasza aplikacja jest uziemiona. W tym przypadku użytkownik rządzi. Jak sobie z tym radzić? Należy wykorzystać drugi argument funkcji getCurrentPosition(): jest to funkcja zwrotna do obsługi błędów.

navigator.geolocation.getCurrentPosition(
  show_map, handle_error)

Jeśli coś się nie uda, zostanie wywołana funkcja obsługi błędów z obiektem PositionError.

Obiekt PositionError
WłasnośćTypUwagi
codeshortwartość wyliczeniowa
messageDOMStringnie przeznaczone dla użytkowników końcowych

Wartością własności code może być:

  • PERMISSION_DENIED (1) jeśli użytkownik kliknął przycisk „Nigdy nie udostępniaj położenia” albo w jakiś inny sposób odmówił udzielenia informacji o swoim miejscu pobytu.
  • POSITION_UNAVAILABLE (2) jeśli sieć nie działa albo nie można nawiązać połączenia z satelitą pozycjonowania.
  • TIMEOUT (3) jeśli sieć działa, ale obliczenie położenia użytkownika zajmuje zbyt dużo czasu. A ile to jest „zbyt dużo czasu”? W następnej części pokażę ci jak zdefiniować tę wartość.

Przegrywaj z honorem

function handle_error(err) {
  if (err.code == 1) {
    // Użytkownik powiedział nie!
  }
}

Pytanie do profesora Kodeckiego

P: Czy API geolokalizacji działa w Międzynarodowej Stacji Kosmicznej, na księżycu i na innych planetach?
O: W specyfikacji geolokalizacji napisano, że: „W atrybutach tego interfejsu wykorzystywany jest geograficzny układ współrzędnych odniesienia WGS 84. Żaden inny układ odniesienia nie jest obsługiwany”. Międzynarodowa stacja kosmiczna krąży na orbicie Ziemi, a więc astronauci w stacji mogą określać swoje położenie posługując się szerokością i długością geograficzną oraz wysokością nad poziomem morza. Układ WGS 84 dotyczy jednak tylko Ziemi, a więc nie można go używać do opisu miejsc na księżycu ani planetach poza Ziemią.

Dodaj komentarz









Newsletter

Subskrybując nasz newsletter masz pewność, że nie ominie Cię żadna nowość w serwisie!