《PhoneGap移动应用开发手册》——1.8节创建可视化罗盘显示设备的移动方向

1.8 创建可视化罗盘显示设备的移动方向
PhoneGap移动应用开发手册
PhoneGap API向开发者提供了获取设备的坐标信息及前进方向信息。开发者可以利用这些信息自定义一个罗盘工具来显示设备的移动。

实现步骤
(1)创建HTML初始化框架,并添加需要脚本文件cordova-2.0.0.js的引用。

(2)本例将以类名的方式调用DOM中的特定元素。为此我们使用XUI JavaScript库

http://xuijs.com/)。在head标签中添加script的引用包含该库。

(3)创建script标签块存放自定义的JavaScript用来和PhoneGap API交互,代码如下。

(4)在body标签下添加一个新的div元素,并将container的class属性赋给该元素。用来存放显示的罗盘元素。

(5)罗盘本身由两个图像组成。每个图像都被分配了一个class名,以方便在JavaScript中对其调用。将这两个元素添加到container元素中。

(6)接下来,在图像下面添加一个新的div元素,并将id属性设置为heading。该元素用来存放从罗盘回应的文本输出。

(10)这两种请求使用相同的onSuccess和onError方法进行输出处理和数据管理。onSuccess方法将以heading对象的方式返回数据。

(11)返回的数据将被用来设置HTML内容中的heading元素,以消息字符串的方式保存在先前定义的headingDiv变量中。

(12)可视化罗盘也需要对前进方向信息做出响应。利用XUI中的CSS方法,借助返回的magneticHeading属性,可将rose图像中的transform属性值转变为rotate。这里通过调用类名.rose引用该图像。

(13)onSuccess完成后,编写onError方法处理遇到问题时以友好的方式返回给用户,代码如下所示。

(14)在onSuccess中创建消息字符串时,调用了一个新的函数converTOText。该函数将从heading对象中接收的magneticHeading值转化为文本输出显示。在XUI deviceready代码块之外添加该函数。

(15)采用一些CSS将两个图像显示在屏幕上,确保rose图像位于罗盘图像之上。新建compass_style.css文件,并采用下面的风格添加内容。

实现原理
PhoneGap API罗盘功能中的watchHeading方法按frequency变量传递的时间间隔更新设备的移动方向数据。如果没有指定间隔时间,则采用默认的时间间隔100微秒(1/10秒)。

在整个持续周期中,每次成功请求,onSuccess方法将被执行并将结果格式化后输出到屏幕,同时改变图像元素的transform属性,使得图像对应移动方向转动方向。

onSuccess方法以compassHeading对象的方式返回设备的移动方向信息。该对象包含以下属性。

magneticheading:Number类型,取值范围为0~359.9,表示一次移动的转动度数。
trueheading:Number类型,取值范围为0~359.9,表示当前运动方向相对于正北的偏转度数。
headingaccuracy:Number类型,表示返回的移动方向和实际移动方向之间的偏差。
timestamp:以毫秒为单位,获取移动方向的时间。

时间: 2024-12-23 03:55:40

《PhoneGap移动应用开发手册》——1.8节创建可视化罗盘显示设备的移动方向的相关文章

《PhoneGap移动应用开发手册》——导读

目 录 第1章 移动与定位:使用加速计和位置传感器 1.1 简介 1.2 使用加速计检测设备的移动 1.3 调整加速计传感器更新时间间隔 1.4 通过加速计事件更新对象的显示位置 1.5 获取设备位置传感器信息 1.6 调整位置传感器更新时间间隔 1.7 根据位置坐标检索地图数据 1.8 创建可视化罗盘显示设备的移动方向 第2章 文件系统.存储及本地数据库 第3章 处理音频.图像和视频 第4章 处理通讯录 第5章 本地事件 第6章 使用XUI 第7章 使用jQuery Mobile进行用户界面开

《PhoneGap移动应用开发手册》——1.7节根据位置坐标检索地图数据

1.7 根据位置坐标检索地图数据PhoneGap移动应用开发手册本节基于设备位置传感器返回的经纬度坐标,使用Google Maps API作为JaveScript,讲述如何在屏幕上绘制地图,及生成地图位置标签. 准备工作编码之前,先行搭建环境.获取Google Maps服务的访问权限. (1)注册一个Google Maps API key:访问https://code.google.com/apis/console/,并使用你的Google账户登录. (2)从左边菜单中选择Services选项,

《PhoneGap移动应用开发手册》——1.4节通过加速计事件更新对象的显示位置

1.4 通过加速计事件更新对象的显示位置 PhoneGap移动应用开发手册 开发者可以利用加速计传感器及其持续更新实现诸多功能,如运动监视游戏和更新屏幕上对象的位置. 实现步骤 下面将通过设备加速计传感器的持续更新,移动屏幕上的元素,作为设备移动的反应.该功能通过如下步骤实现. (1)创建HTML初始化框架.在head标签添加cordova JavaScript引用以导入需求的库. (2)在body标签中创建两个div元素.将其中第一个的id属性设置为点,作为在设备屏幕上移动的元素. (3) 第

《PhoneGap移动应用开发手册》——1.2节使用加速计检测设备的移动

1.2 使用加速计检测设备的移动PhoneGap移动应用开发手册加速计可捕捉设备在x,y,z这3个空间轴上的移动.加速计是一种移动传感器,它能检测当前设备位置的相对移动变化. 实现步骤使用PhoneGap API提供的加速计相关函数检测设备的反馈信息. (1)首先,创建HTML初始化框架,并添加需求脚本文件cordova-2.0.0.js的引用. 通过http://www.packtpub.com.网站购买Packet相关书籍的用户,可以下载已购买书籍的示例代码.其他读者可以访问网站http:/

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

1.6 调整位置传感器更新时间间隔PhoneGap移动应用开发手册使用getCurrentPosition方法,可以获取以GPS坐标表示的设备位置.本例中,通过设定的间隔持续获取更新信息,以获取当前位置. 实现步骤通过传递一个包含多个参数的可选项,设置时间间隔,提高精确度. (1)创建HTML初始化框架,并添加需求的cordova- 2.0.0.js文件. (4)现在添加onDeviceReady函数执行startWatch方法,代码如下. (5)创建startWatch函数.首先,创建opti

《PhoneGap移动应用开发手册》——1.5节获取设备位置传感器信息

1.5 获取设备位置传感器信息PhoneGap移动应用开发手册位置和使用全球卫星定位系统(GPS)功能,可以使开发者创建动态的实时地图绘制.定位及跟踪应用程序.使用位置的一些方法可以获取位置感知应用程序所需要的信息和属性.只要用户连接到网络(通过移动数据业务或者WIFI),就可以从位置传感器获取其位置信息. 实现步骤使用PhoneGap API的位置功能监视设备的反馈信息,获取相关的位置信息. (1)创建HTML初始化框架,并添加需求脚本文件cordova-2.0.0.js的引用. (2)在Co

《PhoneGap移动应用开发手册》——1.3节调整加速计传感器更新时间间隔

1.3 调整加速计传感器更新时间间隔PhoneGap移动应用开发手册getCurrentAcceleration函数只是获取当它被调用的那个时间点的加速计数据,一次调用返回一个响应对象.本例中将设计一个程序可以设定时间间隔以从加速计持续获取其更新,以监视设备的持续运动. 实现步骤通过对PhoneGap API中的一个可用方法提供另外的参数以设置更新时间间隔. (1)首先,创建HTML初始化框架,并添加需要脚本文件cordova-2.0.0.js的引用. (5)创建startWatch函数.首先,

《PhoneGap移动应用开发手册》——1.1简介

1.1 简介PhoneGap移动应用开发手册随着技术发展,移动设备早已不局限于收发短信和邮件这些简单的功能.它们还可以借助位置传感器.加速计传感器及其他传感器,帮助用户导航和定位. 本章将介绍如何使用PhoneGap API来访问这些传感器,并在应用程序中充分利用这些传感器的功能.

《Android应用开发》——1.4节创建新的Android项目

1.4 创建新的Android项目Android应用开发Google提供了几个有用的方法,可以创建一个新的Android项目. (1)如果Eclipse没在运行,就启动它. (2)选择菜单File->New->Project,会出现New Project窗口(见图1.7). 下面看看填写每个域对于项目的意义. 注意: 如果看不到Android的目录,就要检查是否正确安装了Android Eclipse插件.回到1.3节"配置Eclipse",看看可能是哪个步骤出了错.(4)