Cordova 地理位置

2018-12-28 15:07 更新

地理位置用于獲取有關(guān)設(shè)備的緯度和經(jīng)度的信息。

步驟1 - 安裝插件

我們可以通過在命令提示符窗口中鍵入以下代碼來安裝此插件。

C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-geolocation

步驟2 - 添加按鈕

在本教程中,我們將向您展示如何獲取當(dāng)前位置以及如何監(jiān)視更改。我們首先需要?jiǎng)?chuàng)建將調(diào)用這些函數(shù)的按鈕。

<button id = "getPosition">CURRENT POSITION</button>
<button id = "watchPosition">WATCH POSITION</button>

步驟3 - 添加事件監(jiān)聽器

現(xiàn)在我們要在設(shè)備準(zhǔn)備就緒時(shí)添加事件監(jiān)聽器。我們將下面的代碼示例添加到 index.js 中的 onDeviceReady 函數(shù)。

document.getElementById("getPosition").addEventListener("click", getPosition);
document.getElementById("watchPosition").addEventListener("click", watchPosition);	

步驟3 - 創(chuàng)建函數(shù)

需要為兩個(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)將顯示地理位置值。

Cordova Geolocation

如果我們點(diǎn)擊 WATCH POSITION 按鈕,每三秒鐘就會(huì)觸發(fā)相同的提醒。 這樣我們可以跟蹤用戶設(shè)備的移動(dòng)變化。

注意

此插件使用GPS。有時(shí)它不能按時(shí)返回值,并且請求將返回超時(shí)錯(cuò)誤。這就是為什么我們指定 enableHighAccuracy:true maximumAge:3600000 的原因。 這意味著如果請求沒有按時(shí)完成,我們將使用最后一個(gè)已知的值。在我們的示例中,我們將maximumAge設(shè)置為3600000毫秒。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號