《PhoneGap移动应用开发手册》——1.6节调整位置传感器更新时间间隔

简介:

本节书摘来自异步社区《PhoneGap移动应用开发手册》一书中的第1章,第1.6节调整位置传感器更新时间间隔,作者 【英】Matt Gifford,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.6 调整位置传感器更新时间间隔
PhoneGap移动应用开发手册
使用getCurrentPosition方法,可以获取以GPS坐标表示的设备位置。本例中,通过设定的间隔持续获取更新信息,以获取当前位置。

实现步骤
通过传递一个包含多个参数的可选项,设置时间间隔,提高精确度。

(1)创建HTML初始化框架,并添加需求的cordova- 2.0.0.js文件。


3296a5e172779b6adf66791bfc2bca227b43d6df

(4)现在添加onDeviceReady函数执行startWatch方法,代码如下。


91fc73de3ea41eaa12ea432b65c5e27a88819f4c

(5)创建startWatch函数。首先,创建options变量保存传入该函数的可选参数。设置frequency值为5000毫秒(5秒),并将enableHighAccuacy设置为true。

(6)下一步,将watchPosition方法赋给先前定义的变量watchID,此变量用来检查当下位置是否正被监视。

(7)传递已设置的其他参数,将options变量传递给watchPosition方法。


791cc95645fc999af1d1a1ab244df23af0b607d0

(8)初始调用函数创建完成后,现在开始设计在成功回应后执行的onSuccess函数。将返回的position对象作为参数传入该函数。

(9)声明一些变量来保存从响应中获得的详细信息,它们以timestamp、latitude、longitude和accuracy变量的形式出现。同时需要创建一个元素变量,引用用于显示输出信息的geolocation div元素。

(10)通过访问position对象的属性,将返回值赋给相关的变量。

(11)最后,将这些变量设置连接为字符串,并将其设置为div元素中的HTML。


2e01f35ef8fb890b467584e4f3d08a024a467e30

(13)运行程序时,输出效果如图1.8所示。


bd216a627a059f3765c928022510b9ce74091680

实现原理
PhoneGap API中的watchPosition方法以异步函数方式运行,持续检查设备当前位置的变化。一旦检测到设备位置发生变化,将以position对象的形式返回当前地理位置信息。

在持续检测的循环过程中,onSuccess负责处理成功的响应,并将返回值显示到屏幕上。

相关内容
getcurrentPosition和watchPosition函数中有3个可选的参数。

enablehighaccuracy:布尔值变量。决定用户选择的定位精度。默认(false)情况下,使用移动或网元网络获取位置信息。若设置为true,则会使用更加精确的定位方式,如卫星定位。
Timeout:Number类型变量,单位为毫秒,定义获取成功响应的最大等待时间。
MaximunAge:Number类型变量,单位为毫秒,如果缓存的数值小于指定的时间,则使用MaximumAge。

安卓设备中必须将enableHighAccuracy设置为true,才能成功返回位置结果。
清除更新时间间隔
用户可以停止持续的位置请求,或通过程序调用PhongGap API中的clearWatch方法清除更新间隔。清除更新时间间隔、停止检测的方法,与清除通过持续更新获取的加速计数据的方法,完全一样。

相关文章
|
移动开发 JavaScript Android开发
PhoneGap:免费开源的 HTML5 移动应用开发平台
  PhoneGap 是一个免费开源的开发框架,让 Web 开发人员能够使用熟悉的 HTML,CSS 和 JavaScript 构建跨平台的移动本地应用。通过 PhoneGap 框架提供的 JavaScript API 能够以非常简单的方式调用移动设备的核心功能,包括地理位置,摄像头,加速器,通讯录,多媒体,文件和网络等功能。
1062 0
|
移动开发 容器 关系型数据库
《PhoneGap精粹:构建跨平台的移动App》——导读
本节书摘来自异步社区《PhoneGap精粹:构建跨平台的移动App》一书中的目录,作者 【美】John M. Wargo,更多章节内容可以访问云栖社区“异步社区”公众号查看
1329 0