W rozdziale:
- Wprowadzenie
- API geolokalizacji HTML5
- Obsługa błędów
- Sprawdzanie pozycji
- Inne API geolokalizacji
- Przykład wykorzystania API geolokalizacji
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.
| Własność | Typ | Uwagi |
|---|---|---|
code | short | wartość wyliczeniowa |
message | DOMString | nie 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ą.




Wysyłam...
Dodaj komentarz