地理位置用于獲取有關(guān)設(shè)備的緯度和經(jīng)度的信息。
我們可以通過在命令提示符窗口中鍵入以下代碼來安裝此插件。
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-geolocation
在本教程中,我們將向您展示如何獲取當(dāng)前位置以及如何監(jiān)視更改。我們首先需要?jiǎng)?chuàng)建將調(diào)用這些函數(shù)的按鈕。
<button id = "getPosition">CURRENT POSITION</button> <button id = "watchPosition">WATCH POSITION</button>
現(xiàn)在我們要在設(shè)備準(zhǔn)備就緒時(shí)添加事件監(jiān)聽器。我們將下面的代碼示例添加到 index.js 中的 onDeviceReady 函數(shù)。
document.getElementById("getPosition").addEventListener("click", getPosition); document.getElementById("watchPosition").addEventListener("click", watchPosition);
需要為兩個(gè)事件偵聽器創(chuàng)建兩個(gè)函數(shù)。一個(gè)用于獲取當(dāng)前位置,另一個(gè)用于查看位置。
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'); } }
在上面的例子中,我們使用兩個(gè)方法 - getCurrentPosition和watchPosition。兩個(gè)函數(shù)都使用三個(gè)參數(shù)。一旦我們單擊“當(dāng)前位置"按鈕,該警報(bào)將顯示地理位置值。
如果我們點(diǎn)擊 WATCH POSITION 按鈕,每三秒鐘就會(huì)觸發(fā)相同的提醒。 這樣我們可以跟蹤用戶設(shè)備的移動(dòng)變化。
此插件使用GPS。有時(shí)它不能按時(shí)返回值,并且請求將返回超時(shí)錯(cuò)誤。這就是為什么我們指定 enableHighAccuracy:true 和 maximumAge:3600000 的原因。 這意味著如果請求沒有按時(shí)完成,我們將使用最后一個(gè)已知的值。在我們的示例中,我們將maximumAge設(shè)置為3600000毫秒。
更多建議: