第 23 章 傳感器

2018-02-24 15:51 更新

將你的手機(jī)指向天空,谷歌星空地圖會顯示出你正在觀看的星群;傾斜手機(jī),可以控制你的游戲;帶著你的手機(jī)去散步,一款“面包渣兒”應(yīng)用將記錄下你的途經(jīng)的路線。所有這些應(yīng)用之所以能夠?qū)崿F(xiàn),都是因?yàn)槟闼鶖y帶的移動設(shè)備裝備了高科技的傳感器,可以探測到位置、方向以及加速度。

{%}

本章將再次討論App Inventor的位置傳感器、方向傳感器以及加速度傳感器等組件,其中將學(xué)習(xí)全球定位系統(tǒng)(GPS)、方向測量(如傾斜、旋轉(zhuǎn)及搖晃)以及與處理加速度讀數(shù)相關(guān)的數(shù)學(xué)知識。

創(chuàng)建位置感知應(yīng)用

在智能手機(jī)流行之前,計算僅限于桌面電腦。雖然便攜式電腦算是移動設(shè)備,但與我們今天隨身攜帶的微型設(shè)備相比,不可同日而語。計算已經(jīng)擺脫了實(shí)驗(yàn)室及辦公室,在地球上隨時隨地都在發(fā)生。

對計算的普遍性產(chǎn)生深刻影響的是一項(xiàng)新的、有趣的數(shù)據(jù),它存在于上述的所有應(yīng)用中,即:當(dāng)前的位置信息。當(dāng)人們在世界各地游走時掌握他們的行蹤,這件事影響深遠(yuǎn),它既有可能對我們的生活產(chǎn)生極大的幫助,但同時也存在侵犯隱私及損害人權(quán)的可能。

在“安卓,我的車在哪”的應(yīng)用中(第7章)就是一個有益的位置感知應(yīng)用的例子,讓我們可以記住之前的地點(diǎn),以便稍后還能找回來。這是一個個人應(yīng)用——位置信息就保存在自己的手機(jī)數(shù)據(jù)庫中。

同樣的理念也適用于群組。例如,一個徒步旅行者小組可能希望在荒野中查看每個組員的去向,或者一個商務(wù)團(tuán)隊可能希望在一個大型會議上尋找自己的伙伴。這類應(yīng)用已經(jīng)出現(xiàn)在市場上,兩個典型的應(yīng)用就是“谷歌縱橫(Latitude)”(www.google.com/latitude)以及Facebook的“簽到(Place)”(www.facebook.com/places)。由于公眾對隱私的擔(dān)憂,這些應(yīng)用一經(jīng)面世便備受爭議。

另一類位置感知應(yīng)用使用了增強(qiáng)現(xiàn)實(shí)工具。這類應(yīng)用利用位置及手機(jī)的方向,在自然信息基礎(chǔ)上,提供增強(qiáng)的疊加信息。因此當(dāng)你用手機(jī)指向一棟建筑物時,你會看到它在房地產(chǎn)市場上的價格,或者你在植物園中欣賞異國花卉時,某個應(yīng)用會告訴你這株植物的品種。這類應(yīng)用的早期產(chǎn)品包括世界瀏覽器(Wikitude——一款增強(qiáng)現(xiàn)實(shí)的實(shí)景地圖導(dǎo)航應(yīng)用)、手機(jī)實(shí)景瀏覽器(Layar——第一款手機(jī)版的增強(qiáng)現(xiàn)實(shí)瀏覽器)以及谷歌星空地圖。

世界瀏覽器甚至可以讓用戶通過網(wǎng)站http://wikitude.me在移動云上添加數(shù)據(jù)。在網(wǎng)站上,選定地圖并標(biāo)注上你的個人信息,稍后,當(dāng)你或其他用戶在這個位置使用該移動應(yīng)用時,你發(fā)布的信息就會顯示出來。

GPS

創(chuàng)建一個位置感知應(yīng)用,首先需要了解全球定位系統(tǒng)(GPS)的工作原理。GPS數(shù)據(jù)來自美國政府所保有的衛(wèi)星系統(tǒng),只要在視野開闊地帶,至少能看到三顆衛(wèi)星,你的手機(jī)就能獲得讀數(shù)。一份GPS讀數(shù)包括位置的緯度、經(jīng)度及海拔高度。緯度表示與赤道的距離,赤道以北為正值,以南為負(fù)值,范圍從-90至90.如23-1顯示了厄瓜多爾基多附近的谷歌地圖,圖中的緯度為-0.01,表示在赤道偏南一點(diǎn)點(diǎn)。

{%}

圖 23-1 位于赤道上的厄瓜多爾首都基多

經(jīng)度是距離本初子午線(零度經(jīng)線)向東或向西偏離的距離,向東為正值,西為負(fù)值,零度經(jīng)線穿過的最知名的地點(diǎn)就是格林威治,倫敦附近的一座小鎮(zhèn),皇家天文臺的所在地。圖23-2中的地圖標(biāo)出了格林威治,它的經(jīng)度為0.0。

{%}

圖 23-2 格林威治的皇家天文臺沿本初子午線射出一道光柱

經(jīng)度值從-180到180,圖23-3顯示了俄羅斯境內(nèi)的一點(diǎn),非常靠近阿拉斯加,它的經(jīng)度為180.0,這個點(diǎn)可以理解為以格林威治(經(jīng)度為0.0)為起點(diǎn)繞地球半圈所到達(dá)的位置。

{%}

圖 23-3 在俄羅斯與阿拉斯加邊境附近的一點(diǎn),經(jīng)度為180

用App Inventor感知位置

App Inventor為訪問GPS信息提供了LocationSensor(位置傳感器)組件,該組件具有Latitude(緯度)、Longitude(經(jīng)度)及Altitude(海拔高度)三個屬性,此外它可以與谷歌地圖通信,因此還可以獲得當(dāng)前街道地址的信息。

圖23-4中的LocationSensor. LocationChanged是位置傳感器組件LocationSensor最關(guān)鍵的事件處理程序。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號