第 23 章 传感器

2018-02-24 15:51 更新

将你的手机指向天空,谷歌星空地图会显示出你正在观看的星群;倾斜手机,可以控制你的游戏;带着你的手机去散步,一款“面包渣儿”应用将记录下你的途经的路线。所有这些应用之所以能够实现,都是因为你所携带的移动设备装备了高科技的传感器,可以探测到位置、方向以及加速度。

{%}

本章将再次讨论App Inventor的位置传感器、方向传感器以及加速度传感器等组件,其中将学习全球定位系统(GPS)、方向测量(如倾斜、旋转及摇晃)以及与处理加速度读数相关的数学知识。

创建位置感知应用

在智能手机流行之前,计算仅限于桌面电脑。虽然便携式电脑算是移动设备,但与我们今天随身携带的微型设备相比,不可同日而语。计算已经摆脱了实验室及办公室,在地球上随时随地都在发生。

对计算的普遍性产生深刻影响的是一项新的、有趣的数据,它存在于上述的所有应用中,即:当前的位置信息。当人们在世界各地游走时掌握他们的行踪,这件事影响深远,它既有可能对我们的生活产生极大的帮助,但同时也存在侵犯隐私及损害人权的可能。

在“安卓,我的车在哪”的应用中(第7章)就是一个有益的位置感知应用的例子,让我们可以记住之前的地点,以便稍后还能找回来。这是一个个人应用——位置信息就保存在自己的手机数据库中。

同样的理念也适用于群组。例如,一个徒步旅行者小组可能希望在荒野中查看每个组员的去向,或者一个商务团队可能希望在一个大型会议上寻找自己的伙伴。这类应用已经出现在市场上,两个典型的应用就是“谷歌纵横(Latitude)”(www.google.com/latitude)以及Facebook的“签到(Place)”(www.facebook.com/places)。由于公众对隐私的担忧,这些应用一经面世便备受争议。

另一类位置感知应用使用了增强现实工具。这类应用利用位置及手机的方向,在自然信息基础上,提供增强的叠加信息。因此当你用手机指向一栋建筑物时,你会看到它在房地产市场上的价格,或者你在植物园中欣赏异国花卉时,某个应用会告诉你这株植物的品种。这类应用的早期产品包括世界浏览器(Wikitude——一款增强现实的实景地图导航应用)、手机实景浏览器(Layar——第一款手机版的增强现实浏览器)以及谷歌星空地图。

世界浏览器甚至可以让用户通过网站http://wikitude.me在移动云上添加数据。在网站上,选定地图并标注上你的个人信息,稍后,当你或其他用户在这个位置使用该移动应用时,你发布的信息就会显示出来。

GPS

创建一个位置感知应用,首先需要了解全球定位系统(GPS)的工作原理。GPS数据来自美国政府所保有的卫星系统,只要在视野开阔地带,至少能看到三颗卫星,你的手机就能获得读数。一份GPS读数包括位置的纬度、经度及海拔高度。纬度表示与赤道的距离,赤道以北为正值,以南为负值,范围从-90至90.如23-1显示了厄瓜多尔基多附近的谷歌地图,图中的纬度为-0.01,表示在赤道偏南一点点。

{%}

图 23-1 位于赤道上的厄瓜多尔首都基多

经度是距离本初子午线(零度经线)向东或向西偏离的距离,向东为正值,西为负值,零度经线穿过的最知名的地点就是格林威治,伦敦附近的一座小镇,皇家天文台的所在地。图23-2中的地图标出了格林威治,它的经度为0.0。

{%}

图 23-2 格林威治的皇家天文台沿本初子午线射出一道光柱

经度值从-180到180,图23-3显示了俄罗斯境内的一点,非常靠近阿拉斯加,它的经度为180.0,这个点可以理解为以格林威治(经度为0.0)为起点绕地球半圈所到达的位置。

{%}

图 23-3 在俄罗斯与阿拉斯加边境附近的一点,经度为180

用App Inventor感知位置

App Inventor为访问GPS信息提供了LocationSensor(位置传感器)组件,该组件具有Latitude(纬度)、Longitude(经度)及Altitude(海拔高度)三个属性,此外它可以与谷歌地图通信,因此还可以获得当前街道地址的信息。

图23-4中的LocationSensor. LocationChanged是位置传感器组件LocationSensor最关键的事件处理程序。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号