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

简介:

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

1.5 获取设备位置传感器信息
PhoneGap移动应用开发手册
位置和使用全球卫星定位系统(GPS)功能,可以使开发者创建动态的实时地图绘制、定位及跟踪应用程序。使用位置的一些方法可以获取位置感知应用程序所需要的信息和属性。只要用户连接到网络(通过移动数据业务或者WIFI),就可以从位置传感器获取其位置信息。

实现步骤
使用PhoneGap API的位置功能监视设备的反馈信息,获取相关的位置信息。

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


5cc3d4c3aea6d31a4a3a19f8389cdb9f9305bd9c

(2)在Cordova JavaScript下面,添加新的JavaScript标签块,并在其中定义确保设备准备完毕的侦听事件。


1c11dfc6a9522cb3513ab133cc23cd716c145d53

(3)添加onDeviceReady函数。一旦本地代码加载完毕,该函数将调用PhoneGap API中的gelocation.getCurrentPosition函数。


9306c38150de43c337c072b1a7bdcff6472d5ba3

(7)最后,添加OnError函数,处理任何可能出现的错误。

(8)错误一旦出现,根据错误代码返回值决定向用户显示哪类消息。这将被设定为geolocationData div元素中的HTML内容。


2ab9b6289f9a2ccd7292db0e393e3859e4c812a4

(9)在设备上运行此程序时,可能的输出效果如图1.6所示。


537e588d1be6a19b2cbe369fd5ff0655fa79fcc8

实现原理
一旦设备准备就绪,并且本地PhoneGap代码初始化完毕,程序将执行geolocation API中的getCurrentPosition方法。定义onSuccess方法处理输出以及成功响应,定义onError方法捕获错误并进行相应的处理。

onSuccess以position对象的形式返回位置信息,其中包含以下属性。

position.coords:Coordinates对象,存放请求的地理位置信息,包含以下属性。

latitude:Number类型值,取值范围为[−90.00,+90.00],以十进制表示估算的纬度数。
longitude:Number类型值,取值范围为[−180.00,+180.00],以十进制表示估算的经度数。

altitude:Number类型值,表示世界大地测量系统(WGS)84椭球中的海拔高度,单位为米。可选属性。

accuracy:Number类型值,表示纬度和经度的精确度,单位为米。可选属性。

altitudeAccuracy:Number类型值,表示海拔高度估算的准确度,单位为米。可选属性。
heading:Number类型值,表示当前移动方向的度数,相对于正北的顺时针转动的度数。可选属性。
speed:Number类型值,当前设备的移动速度,以米每秒为单位。可选属性。
position.timestamp:DOMTimeStamp对象,表示获取地理位置信息及创建Position对象的时间。
position对象可选属性相当丰富和详细。

对于“可选项”,如果设备没有返回相应的值,则设定为null。

如果在请求过程中遇到错误,OnError函数返回positionError对象。该对象包含下面两个属性。

code:Number类型值,表示错误的数值代码。
Message:String类型对象,表示用户可读的错误描述信息。
错误可能产生的原因:未具备访问设备位置传感器的足够权限、未获取必要GPS信息致使定位失败、请求超时,或者其他未知错误。

相关内容
PhoneGap中可用的定位API基于W3C Geolocation API Specification。当前多数浏览器和设备已使用该API。如果任何运行程序的设备上已经实现了该功能,那么它将使用内置的API,而非PhoneGap的API。

相关文章
|
移动开发 JavaScript Android开发
PhoneGap:免费开源的 HTML5 移动应用开发平台
  PhoneGap 是一个免费开源的开发框架,让 Web 开发人员能够使用熟悉的 HTML,CSS 和 JavaScript 构建跨平台的移动本地应用。通过 PhoneGap 框架提供的 JavaScript API 能够以非常简单的方式调用移动设备的核心功能,包括地理位置,摄像头,加速器,通讯录,多媒体,文件和网络等功能。
1067 0
|
5天前
|
人工智能 前端开发 物联网
移动应用开发的未来:跨平台框架与原生系统之争
【5月更文挑战第8天】 在本文中,我们探讨了移动应用开发的现状和未来趋势,特别是跨平台框架与原生系统之间的竞争。我们将分析这两种方法的优缺点,以及它们如何影响开发者和企业的选择。我们还将讨论一些新兴的技术,如人工智能和物联网,以及它们如何改变移动应用开发的未来。
30 10
|
17小时前
|
开发框架 前端开发 Android开发
移动应用开发的未来:跨平台框架与原生系统协同进化
【5月更文挑战第12天】 随着移动设备成为日常生活的延伸,移动应用的开发和操作系统的优化变得愈加重要。本文深入探讨了移动应用开发的当前趋势,特别是跨平台开发框架的兴起,以及它们如何与原生移动操作系统相互作用。我们将分析跨平台工具如React Native和Flutter对传统移动应用开发模式的挑战,并探索这些框架为开发者提供的灵活性和效率。同时,我们还将讨论移动操作系统的最新进展,包括它们如何适应不断变化的应用需求,并保持用户体验的最优化。文章最终旨在提供一个全面的视角,展示移动应用开发和操作系统如何共同塑造未来的数字生态系统。
|
3天前
|
机器学习/深度学习 开发框架 Android开发
移动应用开发的未来:跨平台框架与原生系统的融合
【5月更文挑战第10天】 随着移动设备成为日常生活和工作的核心,移动应用的开发已经迅速成为一个不断进化的技术领域。本文将探讨当前移动应用开发的新趋势,特别是跨平台开发框架的兴起以及它们与传统移动操作系统之间的互动。我们将分析如何通过结合跨平台工具的便捷性和原生系统的性能优势,来构建更加高效、可靠且具有前瞻性的移动应用。
5 0
|
5天前
|
前端开发 开发工具 Android开发
探索移动应用开发的未来:跨平台工具与原生系统的挑战
【5月更文挑战第8天】随着移动设备日益普及,移动应用成为日常生活和业务操作不可或缺的组成部分。本文深入分析了移动应用开发领域的两大趋势——跨平台开发工具的兴起与原生操作系统的优化挑战。通过对比Flutter、React Native等跨平台工具的技术特点,以及iOS和Android各自在性能、安全性和用户体验方面的最新进展,文章旨在为开发者和企业决策者提供洞见,帮助他们在快速变化的移动市场中做出明智的选择。
|
5天前
|
开发框架 前端开发 Android开发
移动应用开发的未来:跨平台框架与原生操作系统的融合
【5月更文挑战第8天】 随着移动技术的迅猛发展,移动应用已成为日常生活不可或缺的一部分。本文将探讨移动应用开发的最新趋势,特别是跨平台开发框架与原生操作系统之间的融合。我们将分析如何通过利用跨平台工具如React Native和Flutter,同时不失原生性能及用户体验,来提升开发效率并扩大应用的可及性。此外,文章还将着眼于移动操作系统的演进,尤其是它们如何适应新的应用开发需求,以及开发者如何应对操作系统更新带来的挑战。