科尔多瓦 - 地理定位


地理位置用于获取有关设备的纬度和经度的信息。

第 1 步 - 安装插件

我们可以通过在命令提示符窗口中键入以下代码来安装此插件。

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

第 2 步 - 添加按钮

在本教程中,我们将向您展示如何获取当前位置以及如何观察变化。我们首先需要创建调用这些函数的按钮。

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

第 3 步 - 添加事件监听器

现在我们要在设备准备就绪时添加事件侦听器。我们将下面的代码示例添加到index.js中的onDeviceReady函数中。

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

第 3 步 - 创建函数

必须为两个事件侦听器创建两个函数。一个用于获取当前位置,另一个用于观察位置。

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');
   }
}

在上面的示例中,我们使用两种方法 - getCurrentPositionwatchPosition。这两个函数都使用三个参数。一旦我们单击“当前位置”按钮,警报将显示地理位置值。

科尔多瓦地理定位

如果我们单击“WATCH POSITION”按钮,则每三秒就会触发相同的警报。这样我们就可以跟踪用户设备的移动变化。

笔记

该插件使用 GPS。有时无法按时返回值,请求会返回超时错误。这就是为什么我们指定了enableHighAccuracy:truemaximumAge:3600000。这意味着如果请求未按时完成,我们将使用最后一个已知值。在我们的示例中,我们将 MaximumAge 设置为 3600000 毫秒。