Ten plugin zawiera informacje o lokalizacji urządzenia, takie jak szerokość i długość geograficzną. Najczęstsze źródła informacji o lokalizacji obejmują Global Positioning System (GPS) i lokalizacji wywnioskować z sieci sygnały, takie jak adres IP, RFID, WiFi i Bluetooth MAC adresy, a komórki GSM/CDMA identyfikatorów. Nie ma żadnej gwarancji, że API zwraca rzeczywistej lokalizacji urządzenia.
Ten interfejs API jest oparty na Specyfikacji W3C Geolocation APIi tylko wykonuje na urządzeniach, które już nie zapewniają implementacja.
Ostrzeżenie: zbierania i wykorzystywania danych geolokacyjnych podnosi kwestie prywatności ważne. Polityka prywatności danej aplikacji należy omówić, jak aplikacja używa danych, czy jest on dzielony z innych stron i poziom dokładności danych (na przykład, gruba, porządku, kod pocztowy poziom, itp.). Danych geolokacyjnych ogólnie uznaje wrażliwych, bo to może ujawnić pobytu użytkownika i, jeśli przechowywane, historii ich podróży. W związku z tym oprócz aplikacji prywatności, zdecydowanie warto powiadomienia just-in-time, zanim aplikacja uzyskuje dostęp do danych (jeśli urządzenie system operacyjny nie robi już). Że ogłoszenie powinno zawierać te same informacje, o których wspomniano powyżej, jak również uzyskanie uprawnienia użytkownika (np. poprzez przedstawianie wyborów OK i Nie dzięki). Aby uzyskać więcej informacji zobacz przewodnik prywatności.
Ten plugin definiuje obiekt globalny navigator.geolocation
(dla platformy gdzie to inaczej brak).
Mimo, że obiekt jest w globalnym zasięgu, funkcji oferowanych przez ten plugin nie są dostępne dopiero po turnieju deviceready
.
document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { console.log("navigator.geolocation works well"); }
cordova plugin add cordova-plugin-geolocation
Zwraca bieżącą pozycję urządzenia do geolocationSuccess
wywołanie zwrotne z Position
obiektu jako parametr. Jeśli występuje błąd, wywołania zwrotnego geolocationError
jest przekazywany obiekt PositionError
.
navigator.geolocation.getCurrentPosition(geolocationSuccess, [geolocationError], [geolocationOptions]);
geolocationSuccess: wywołania zwrotnego, który jest przekazywany aktualnej pozycji.
geolocationError: (opcjonalne) wywołania zwrotnego, która wykonuje w przypadku wystąpienia błędu.
geolocationOptions: (opcjonalne) opcji geolokalizacji.
// onSuccess Callback // This method accepts a Position object, which contains the // current GPS coordinates // var onSuccess = function(position) { alert('Latitude: ' + position.coords.latitude + '\n' + 'Longitude: ' + position.coords.longitude + '\n' + 'Altitude: ' + position.coords.altitude + '\n' + 'Accuracy: ' + position.coords.accuracy + '\n' + 'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' + 'Heading: ' + position.coords.heading + '\n' + 'Speed: ' + position.coords.speed + '\n' + 'Timestamp: ' + position.timestamp + '\n'); }; // onError Callback receives a PositionError object // function onError(error) { alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); } navigator.geolocation.getCurrentPosition(onSuccess, onError);
Zwraca bieżącą pozycję urządzenia po wykryciu zmiany pozycji. Gdy urządzenie pobiera nową lokalizację, wywołania zwrotnego geolocationSuccess
wykonuje się z Position
obiektu jako parametr. Jeśli występuje błąd, wywołania zwrotnego geolocationError
wykonuje się z obiektem PositionError
jako parametr.
var watchId = navigator.geolocation.watchPosition(geolocationSuccess, [geolocationError], [geolocationOptions]);
geolocationSuccess: wywołania zwrotnego, który jest przekazywany aktualnej pozycji.
geolocationError: (opcjonalne) wywołania zwrotnego, która wykonuje w przypadku wystąpienia błędu.
geolocationOptions: (opcjonalne) geolocation opcje.
navigator.geolocation.clearWatch
Aby przestać oglądać do zmiany pozycji.// onSuccess Callback // This method accepts a `Position` object, which contains // the current GPS coordinates // function onSuccess(position) { var element = document.getElementById('geolocation'); element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' + 'Longitude: ' + position.coords.longitude + '<br />' + '<hr />' + element.innerHTML; } // onError Callback receives a PositionError object // function onError(error) { alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n'); } // Options: throw an error if no update is received every 30 seconds. // var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { timeout: 30000 });
Parametry opcjonalne dostosować pobierania geolocation Position
.
{ maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
enableHighAccuracy: stanowi wskazówkę, że aplikacja musi możliwie najlepszych rezultatów. Domyślnie, urządzenie próbuje pobrać Position
przy użyciu metody oparte na sieci. Ustawienie tej właściwości na true
mówi ramach dokładniejszych metod, takich jak pozycjonowanie satelitarne. (Wartość logiczna)
Limit czasu: maksymalna długość czas (w milisekundach), który może przekazać wywołanie navigator.geolocation.getCurrentPosition
lub geolocation.watchPosition
do odpowiednich geolocationSuccess
wykonuje wywołanie zwrotne. Jeśli geolocationSuccess
wywołania zwrotnego nie jest wywoływany w tej chwili, geolocationError
wywołania zwrotnego jest przekazywany PositionError.TIMEOUT
kod błędu. (Należy zauważyć, że w połączeniu z geolocation.watchPosition
, geolocationError
wywołania zwrotnego można nazwać w odstępie co timeout
milisekund!) (Liczba)
maximumAge: przyjąć buforowane pozycji, w których wiek jest nie większa niż określony czas w milisekundach. (Liczba)
Emulatory Androida 2.x nie zwracają wynik geolocation, chyba że opcja enableHighAccuracy
jest ustawiona na wartość true
.
Przestać oglądać zmiany położenia urządzenia określany przez parametr watchID
.
navigator.geolocation.clearWatch(watchID);
watchPosition
Interwał jasne. (String)// Options: watch for changes in position, and use the most // accurate position acquisition method available. // var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true }); // ...later on... navigator.geolocation.clearWatch(watchID);
Zawiera współrzędne Position
i sygnatury czasowej, stworzony przez geolocation API.
coords: zestaw współrzędnych geograficznych. (Współrzędne)
sygnatura czasowa: Sygnatura czasowa utworzenia dla coords
. (Data)
Coordinates
obiektu jest dołączone do Position
obiektu, który jest dostępny dla funkcji wywołania zwrotnego w prośby o aktualnej pozycji. Zawiera zestaw właściwości, które opisują geograficzne współrzędne pozycji.
szerokość geograficzna: Latitude w stopniach dziesiętnych. (Liczba)
długość geograficzna: długość geograficzna w stopniach dziesiętnych. (Liczba)
wysokość: wysokość pozycji metrów nad elipsoidalny. (Liczba)
dokładność: poziom dokładności współrzędnych szerokości i długości geograficznej w metrach. (Liczba)
altitudeAccuracy: poziom dokładności Współrzędna wysokość w metrach. (Liczba)
pozycja: kierunek podróży, określonego w stopni licząc ruchu wskazówek zegara względem północy rzeczywistej. (Liczba)
prędkość: Aktualna prędkość ziemi urządzenia, określone w metrach na sekundę. (Liczba)
altitudeAccuracy: nie obsługiwane przez Android urządzeń, zwracanie wartości null
.
altitudeAccuracy: nie obsługiwane przez Android urządzeń, zwracanie wartości null
.
PositionError
obiekt jest przekazywany do funkcji wywołania zwrotnego geolocationError
, gdy wystąpi błąd z navigator.geolocation.
Kod: jeden z kodów błędów wstępnie zdefiniowanych poniżej.
wiadomość: komunikat o błędzie, opisując szczegóły wystąpił błąd.
PositionError.PERMISSION_DENIED
PositionError.POSITION_UNAVAILABLE
PositionError.TIMEOUT
timeout
w geolocationOptions
. Gdy używana z navigator.geolocation.watchPosition
, ten błąd może być wielokrotnie przekazywane do geolocationError
zwrotne co timeout
milisekund.