Cordova - Vị trí địa lý
Vị trí địa lý được sử dụng để nhận thông tin về kinh độ và vĩ độ của thiết bị.
Bước 1 - Cài đặt Plugin
Chúng tôi có thể cài đặt plugin này bằng cách nhập mã sau để command prompt cửa sổ.
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-geolocation
Bước 2 - Thêm các nút
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách có được vị trí hiện tại và cách theo dõi các thay đổi. Đầu tiên chúng ta cần tạo các nút sẽ gọi các hàm này.
<button id = "getPosition">CURRENT POSITION</button>
<button id = "watchPosition">WATCH POSITION</button>
Bước 3 - Thêm người nghe sự kiện
Bây giờ chúng tôi muốn thêm trình nghe sự kiện khi thiết bị đã sẵn sàng. Chúng tôi sẽ thêm mẫu mã bên dưới đểonDeviceReady chức năng trong index.js.
document.getElementById("getPosition").addEventListener("click", getPosition);
document.getElementById("watchPosition").addEventListener("click", watchPosition);
Bước 3 - Tạo hàm
Hai hàm phải được tạo cho hai trình nghe sự kiện. Một sẽ được sử dụng để nhận vị trí hiện tại và một để theo dõi vị trí.
function getPosition() {
var options = {
enableHighAccuracy: true,
maximumAge: 3600000
}
var watchID = navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
function onSuccess(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');
};
function onError(error) {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
}
function watchPosition() {
var options = {
maximumAge: 3600000,
timeout: 3000,
enableHighAccuracy: true,
}
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
function onSuccess(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');
};
function onError(error) {
alert('code: ' + error.code + '\n' +'message: ' + error.message + '\n');
}
}
Trong ví dụ trên, chúng tôi đang sử dụng hai phương pháp: getCurrentPosition và watchPosition. Cả hai hàm đều sử dụng ba tham số. Khi chúng tôi nhấp vàoCURRENT POSITION , cảnh báo sẽ hiển thị các giá trị vị trí địa lý.
Nếu chúng tôi nhấp vào WATCH POSITION, cùng một cảnh báo sẽ được kích hoạt sau mỗi ba giây. Bằng cách này, chúng tôi có thể theo dõi các thay đổi chuyển động của thiết bị của người dùng.
GHI CHÚ
Plugin này đang sử dụng GPS. Đôi khi nó không thể trả về các giá trị đúng thời gian và yêu cầu sẽ trả về lỗi hết thời gian chờ. Đây là lý do tại sao chúng tôi chỉ địnhenableHighAccuracy: true và maximumAge: 3600000.Điều này có nghĩa là nếu một yêu cầu không được hoàn thành đúng hạn, chúng tôi sẽ sử dụng giá trị cuối cùng đã biết để thay thế. Trong ví dụ của chúng tôi, chúng tôi đang đặt MaximumAge thành 3600000 mili giây.