《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 能够以非常简单的方式调用移动设备的核心功能,包括地理位置,摄像头,加速器,通讯录,多媒体,文件和网络等功能。
1406 0
|
开发框架 Dart Android开发
移动应用开发中的创新之路:探索跨平台解决方案
【9月更文挑战第21天】在移动应用的海洋中,开发者们面临着一个不断变化的挑战——如何在多个操作系统上提供无缝的用户体验。本文将探讨跨平台开发的魅力与挑战,并深入分析Flutter框架如何成为现代开发者的利器。我们将通过实际代码示例,揭示Flutter简化开发流程、提高生产效率的秘密。从Dart语言的基础到热重载的便捷性,本文旨在为读者提供一次全面而深刻的跨平台开发之旅。
|
C# Android开发 虚拟化
C# 一分钟浅谈:MAUI 跨平台移动应用开发
.NET MAUI 是 Microsoft 推出的跨平台框架,支持 Windows、macOS、iOS 和 Android。本文从基础概念入手,探讨 MAUI 的常见问题、易错点及解决方案,并通过代码示例详细说明。涵盖平台特定代码、XAML 语法、数据绑定、性能优化和调试技巧等内容,帮助开发者更好地掌握 .NET MAUI。
1387 55
|
开发框架 前端开发 Android开发
移动应用开发中的跨平台策略与实践
【9月更文挑战第34天】本文将深入探讨移动应用开发的跨平台策略,包括对React Native、Flutter和Xamarin等流行框架的比较。文章还将分享一些实用的跨平台开发技巧和最佳实践,帮助开发者在多个平台上高效地构建和维护应用。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和指导。
|
开发框架 数据安全/隐私保护 开发者
Flutter 是一款强大的跨平台移动应用开发框架,本文深入探讨了其布局与样式设计
Flutter 是一款强大的跨平台移动应用开发框架,本文深入探讨了其布局与样式设计,涵盖布局基础、常用组件、样式设计、实战应用、响应式布局及性能优化等方面,助力开发者打造精美用户界面。
401 7
|
开发框架 Dart 前端开发
Flutter 是谷歌推出的一款高效跨平台移动应用开发框架,使用 Dart 语言,具备快速开发、跨平台支持、高性能、热重载及美观界面等特点。
Flutter 是谷歌推出的一款高效跨平台移动应用开发框架,使用 Dart 语言,具备快速开发、跨平台支持、高性能、热重载及美观界面等特点。本文从 Flutter 简介、特点、开发环境搭建、应用架构、组件详解、路由管理、状态管理、与原生代码交互、性能优化、应用发布与部署及未来趋势等方面,全面解析 Flutter 技术,助你掌握这一前沿开发工具。
1221 8