HTML5 - Geolokalizacja
Interfejs API geolokalizacji HTML5 umożliwia udostępnianie lokalizacji w ulubionych witrynach internetowych. JavaScript może przechwytywać Twoją szerokość i długość geograficzną i może być wysyłany do serwera WWW zaplecza i wykonywać wymyślne funkcje uwzględniające lokalizację, takie jak znajdowanie lokalnych firm lub pokazywanie Twojej lokalizacji na mapie.
Obecnie większość przeglądarek i urządzeń mobilnych obsługuje interfejs API geolokalizacji. Interfejsy API geolokalizacji działają z nową właściwością obiektu globalnego nawigatora, tj. Obiekt geolokalizacyjny, który można utworzyć w następujący sposób -
var geolocation = navigator.geolocation;
Obiekt geolokalizacji to obiekt usługowy, który umożliwia widgetom pobieranie informacji o położeniu geograficznym urządzenia.
Metody geolokalizacji
Obiekt geolokalizacji udostępnia następujące metody -
Sr.No. | Metoda i opis |
---|---|
1 | getCurrentPosition () Ta metoda pobiera bieżącą lokalizację geograficzną użytkownika. |
2 | watchPosition () Ta metoda pobiera okresowe aktualizacje dotyczące bieżącej lokalizacji geograficznej urządzenia. |
3 | clearWatch () Ta metoda anuluje trwające wywołanie watchPosition. |
Przykład
Poniżej znajduje się przykładowy kod do użycia dowolnej z powyższych metod -
function getLocation() {
var geolocation = navigator.geolocation;
geolocation.getCurrentPosition(showLocation, errorHandler);
}
Tutaj showLocation i errorHandler są metodami wywołań zwrotnych, które zostałyby użyte do uzyskania rzeczywistej pozycji, jak wyjaśniono w następnej sekcji, i do obsługi błędów, jeśli takie istnieją.
Właściwości lokalizacji
Metody geolokalizacji getCurrentPosition () i getPositionUsingMethodName () określają metodę wywołania zwrotnego, która pobiera informacje o lokalizacji. Te metody są wywoływane asynchronicznie z obiektemPosition który przechowuje pełne informacje o lokalizacji.
Plik Positionobiekt określa aktualne położenie geograficzne urządzenia. Lokalizacja jest wyrażona jako zbiór współrzędnych geograficznych wraz z informacją o kursie i prędkości.
W poniższej tabeli opisano właściwości obiektu Position. W przypadku właściwości opcjonalnych, jeśli system nie może podać wartości, wartość właściwości jest ustawiana na null.
własność | Rodzaj | Opis |
---|---|---|
coords | obiekty | Określa położenie geograficzne urządzenia. Lokalizacja jest wyrażona jako zbiór współrzędnych geograficznych wraz z informacją o kursie i prędkości. |
coords.latitude | Numer | Określa szacunkową szerokość geograficzną w stopniach dziesiętnych. Zakres wartości to [-90,00, +90,00]. |
coords.longitude | Numer | Określa szacunkową długość geograficzną w stopniach dziesiętnych. Zakres wartości to [-180,00, +180,00]. |
coords.altitude | Numer | [Opcjonalnie] Określa szacunkową wysokość w metrach nad elipsoidą WGS 84. |
coords.accuracy | Numer | [Opcjonalnie] Określa dokładność szacunków szerokości i długości geograficznej w metrach. |
coords.altitudeAccuracy | Numer | [Opcjonalnie] Określa dokładność oszacowania wysokości w metrach. |
coords.heading | Numer | [Opcjonalnie] Określa bieżący kierunek ruchu urządzenia w stopniach, licząc zgodnie z ruchem wskazówek zegara względem prawdziwej północy. |
coords.speed | Numer | [Opcjonalnie] Określa aktualną prędkość urządzenia w metrach na sekundę. |
znak czasu | data | Określa czas, w którym pobrano informacje o lokalizacji i utworzono obiekt Position. |
Przykład
Poniżej znajduje się przykładowy kod, który wykorzystuje obiekt Position. Tutaj metoda showLocation jest metodą wywołania zwrotnego -
function showLocation( position ) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
...
}
Obsługa błędów
Geolokalizacja jest skomplikowana i jest bardzo wymagana, aby wyłapać każdy błąd i poradzić sobie z nim z wdziękiem.
Metody geolokalizacji getCurrentPosition () i watchPosition () wykorzystują metodę wywołania zwrotnego obsługi błędów, która daje PositionErrorobiekt. Ten obiekt ma następujące dwie właściwości -
własność | Rodzaj | Opis |
---|---|---|
kod | Numer | Zawiera numeryczny kod błędu. |
wiadomość | Strunowy | Zawiera czytelny dla człowieka opis błędu. |
W poniższej tabeli opisano możliwe kody błędów zwracane w obiekcie PositionError.
Kod | Stały | Opis |
---|---|---|
0 | NIEZNANY BŁĄD | Metoda nie mogła pobrać lokalizacji urządzenia z powodu nieznanego błędu. |
1 | PERMISSION_DENIED | Metoda nie może pobrać lokalizacji urządzenia, ponieważ aplikacja nie ma uprawnień do korzystania z usługi lokalizacji. |
2 | POSITION_UNAVAILABLE | Nie można określić lokalizacji urządzenia. |
3 | KONIEC CZASU | Metoda nie mogła pobrać informacji o lokalizacji w określonym maksymalnym przedziale czasu. |
Przykład
Poniżej znajduje się przykładowy kod, który wykorzystuje obiekt PositionError. Tutaj metoda errorHandler jest metodą wywołania zwrotnego -
function errorHandler( err ) {
if (err.code == 1) {
// access is denied
}
...
}
Opcje pozycji
Poniżej przedstawiono rzeczywistą składnię metody getCurrentPosition () -
getCurrentPosition(callback, ErrorCallback, options)
Tutaj trzecim argumentem jest PositionOptions obiekt, który określa zestaw opcji pobierania lokalizacji geograficznej urządzenia.
Poniżej znajdują się opcje, które można określić jako trzeci argument -
własność | Rodzaj | Opis |
---|---|---|
enableHighAccuracy | Boolean | Określa, czy widget chce otrzymywać możliwie najdokładniejsze oszacowanie lokalizacji. Domyślnie jest to fałsz. |
koniec czasu | Numer | Właściwość timeout to liczba milisekund, które aplikacja internetowa jest gotowa czekać na pozycję. |
maksymalny wiek | Numer | Określa czas wygaśnięcia w milisekundach dla informacji o lokalizacji w pamięci podręcznej. |
Przykład
Poniżej znajduje się przykładowy kod, który pokazuje, jak korzystać z wyżej wymienionych metod -
function getLocation() {
var geolocation = navigator.geolocation;
geolocation.getCurrentPosition(showLocation, errorHandler, {maximumAge: 75000});
}