第 23 章 傳感器

2018-02-24 15:51 更新

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

{%}

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

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

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

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

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

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

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

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

GPS

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

{%}

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

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

{%}

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

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

{%}

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

用App Inventor感知位置

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

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號