瑋瑋的十歲生日是一個很神奇的時間分界點,對我跟瑋媽而言,最近可以很明顯的察覺他的變化,例如原本16行的語詞,寫他個兩小時是很正常的,現在寫個二十多分就寫完(只不過中間會忘了畫線與句點,Orz);原本寫字的時候會一再的擦掉重寫的狀況(搞得整個作業簿都髒兮兮的),現在好像也不會了;對於語言的表達與運用,也有明顯的不同,能稍為表達他想表達的意思,也能在外界發生一些狀況時,用口語提出他的疑問(雖然用的詞句相對於同年齡的小朋友是相當粗糙)。
其實前面這麼長的開場白跟今天的內容並沒有很大的關係,呵呵(嚴格來說還是可以説有關係,文後會提到)。今天寫的這個App是一個幫忙記錄活動軌跡的軟體,主要的概念是要利用智慧型手機中的Gps去擷取目前所在的位置,定時地把相關資訊傳回伺服器資料庫中,而在伺服器端會有Asp.Net程式用以接收與分析這些傳回的資訊,以及展示相關資訊與即時顯示所在位置的地圖。在手機端的App還是以App Inventor來撰寫的,設計的介面如下
畫面上只顯示目前所在的位置(緯度及經度),即時傳送資訊的間隔時間及歷史位置資訊(WebViewer被我隱藏起來了)。程式碼如下,主要是抓取Gps的位置,利用WebViewer把位置資訊傳到伺服器上,使用Asp.Net的程式將資料寫入資料庫中
底下是執行畫面
在使用上主要是得記得要開手機的Gps,執行App就可以了。這個App會自動把位置資訊傳送到伺服器的資料庫中了。伺服器上有兩個Asp.Net的網頁,一個主要的功能是接收資料、寫入資料到Sql Server的資料庫中;另一個是抓取位置資料,即時產生所在位置地圖。進入的畫面可以查看每一筆位置資訊,當使用者點選左側任一筆資料,系統會在右側即時顯示資料點所在的地圖
其實這個系統也可以用於即時監控App使用者的位置,因為App會即時傳回位置資訊,這表示我可以在網站上即時顯示使用者所在位置的地圖,感覺這對瑋瑋應該有點用處,因為瑋瑋出門有很高的走失危機(詳情請參閱該放手的時候就要放手、東京之旅(第三天) 2013/6/29、東京之旅(第六天) 2013/7/2,呵呵,國內外都有!)
在瑋瑋不見的時候,我可以上網查看他"大概"的位置,並使用他所在的經緯度導航到他的所在處(先決條件是要讓他帶一隻智慧手機)。不過Gps在室內是收不到訊號的,所以他假如是在室內不見了(我曾經在學校大樓中瘋狂找小孩,詳情請參閱天啊!瑋瑋又不見了!),可能就幫助不大,但不是没幫助,至少可以由其Gps所傳回的最後位置知道他可能在那棟大樓之中。
有了活動的位置資訊還可以做一些不同的應用,例如在運動管理應用上,我們可以知道App使用者在特定時間內行走了多少距離,若搭配上次我所寫的計步功能(請參閱超簡單計步器),還可以知道他在特定時間內的運動激不激烈;又或是在長距離的運動中,了解運動員配速或身體的律動狀況。