浙江工業(yè)職業(yè)技術(shù)學院 方 杰
隨著社會的不斷進步和科技的迅速發(fā)展,網(wǎng)絡已經(jīng)成為人們?nèi)粘I畹谋貍錀l件,同時,網(wǎng)絡技術(shù)的不斷跟新也使得它對人們的吸引力越來越大。對于上班族來說,許多人都承受著社會、家庭帶來的巨大壓力,上班的時候不得不一直面對著電腦工作,下班的時候也一直處于消極的狀態(tài)中,經(jīng)常依靠網(wǎng)絡聊天和網(wǎng)絡游戲等方式釋放壓力;對于學生來說,很多都上完課直接泡在寢室上網(wǎng)、玩電腦,更有自控能力比較差的,根本無法抵擋網(wǎng)絡帶來的誘惑。上述的情況,目前已經(jīng)非常普遍,已經(jīng)成為一個社會現(xiàn)象,許多人寧愿沉浸于網(wǎng)絡世界也不愿意去體驗打球或旅游等戶外運動,這些人將逐漸出現(xiàn)情緒變得壓抑補穩(wěn)定,身體素質(zhì)下降等狀況。
因此,開發(fā)一個合理的追蹤和分析系統(tǒng)能提醒人們:自己處于怎樣的生活狀態(tài)?與自己設(shè)定的生活方式相差多少?我該怎么做?
Google Map是Google公司提供的電子地圖服務,包括局部詳細的衛(wèi)星照片。它能提供三種視圖:一是矢量地圖(傳統(tǒng)地圖),可提供政區(qū)和交通以及商業(yè)信息;二是不同分辨率的衛(wèi)星照片(俯視地圖,與Google Earth上的衛(wèi)星照片基本一樣);三是后來加上的地形視圖,可以用以顯示地形和等高線。目前,針對Google Map所開發(fā)的應用有很多,其中最實用的就是GPS。本系統(tǒng)所采用的研究方法是:基于Android平臺,開發(fā)一個Google Map應用,定時收集某一用戶的當前位置,與Google Map的實際地圖相比較,分析其作息特點,得出結(jié)論并給予建議。
其主要的研究有以下幾點:
系統(tǒng)每5分鐘收集一次用戶當前所在位置的坐標,但是并不是每一次獲取的坐標都進行存儲。假設(shè)用戶在家呆了一整天,那當天每次收集的數(shù)據(jù)應偏差不大,所以當當前收集數(shù)據(jù)與上一次收集數(shù)據(jù)的偏差在一定范圍內(nèi)的時候,該坐標數(shù)據(jù)將不存入數(shù)據(jù)庫,該方法能有效地節(jié)約存儲空間。時間間隔設(shè)置的代碼如下:
用戶可以自行設(shè)定獲取數(shù)據(jù)的間隔時間。
系統(tǒng)每割一段時間會收集用戶的坐標位置,并儲存在設(shè)備中,雖然收集的數(shù)據(jù)只是坐標,但是長時間的獲取會導致數(shù)據(jù)量比較大。通常存儲的方式有兩種,一種是存在文本文檔等類似文檔中,另一種是存在數(shù)據(jù)庫中。第一種方式存取速度相對來說比較快,但是安全性有待提高;對一個成熟的應用系統(tǒng)來說,通常會選擇第二種方式,但對于數(shù)據(jù)庫而言,如果我們要分析收集的坐標,就是要頻繁大量地去讀寫數(shù)據(jù)庫,如果記錄有幾十萬行甚至幾百萬行,那就會出現(xiàn)讀取緩慢等一系列的問題。
系統(tǒng)采用如下的方法能一定程度上解決這個問題:
?每隔一段時間(比如一天),自動對數(shù)據(jù)進行整理,得出一個合適的結(jié)論或建議,并刪除當天數(shù)據(jù),而不是等待用戶去查看。這樣可以有效地把使用的存儲空間控制在一定的范圍內(nèi)。并記錄每一天的數(shù)據(jù),幫用戶更好的分析對比。
?查詢數(shù)據(jù)時采用預處理。使用PreparedStatement代替Statement語句。由于PreparedStatement對象已預編譯過,所以其執(zhí)行速度要快于Statement對象。因此,多次執(zhí)行的SQL語句經(jīng)常創(chuàng)建為Pre-paredStatement對象,以提高效率。
?對數(shù)據(jù)進行分表處理,把大量的數(shù)據(jù)按一定的規(guī)則分成幾個小表。在多用戶操作數(shù)據(jù)過程中,能有效地減少鎖表的情況;對于當前系統(tǒng)而言,能加快設(shè)備的響應時間,減少用戶的等待。
對于用戶來說,地點的定位不能固定在某個點上,而是應定位在一個特定的范圍內(nèi),系統(tǒng)設(shè)定所有的特定區(qū)域為長方形,用長方形左上角的坐標和右下角的坐標來確定該特定區(qū)域的范圍。定位分析的方式通常有兩種,一種由用戶自行設(shè)定區(qū)域,比如學生用戶可以設(shè)定地圖上的三個特定區(qū)域為A(寢室樓)、B(教學樓)、C(操場),他們的坐標標記為(XAL,YAL,XAR,YAR)、(XBL,YBL,XBR,YBR)、(XCL,YCL,XCR,YCR),如果用戶當前獲取的坐標值(X,Y)剛好滿足X>=XAL&&X<=XAR&&Y>=YAR&&Y<=YAL,則可判斷該用戶處于A的位置中,即寢室。另一種方法則相對復雜,通過一定時段中用戶的坐標點,結(jié)合密度的設(shè)定,計算出用戶經(jīng)常處于的區(qū)域范圍,動態(tài)地生成區(qū)域,并用上述同樣的方法計算用戶所在區(qū)域。第二種方法用動態(tài)的方式生成區(qū)域,能一定程度上解決地圖版本老化、用戶所在區(qū)域建筑變化等問題。
該系統(tǒng)可以統(tǒng)計并分析在家、在工作和在玩的時間,幫助合理規(guī)劃自己的生活。以用戶為例,根據(jù)收集到的數(shù)據(jù),可以分別統(tǒng)計在寢室、教室、操場等具體時間段,并與用戶預設(shè)值的時間分配或系統(tǒng)推薦做比較。統(tǒng)計的時間段可以是一天,也可以是幾天甚至幾個月。只要用戶查看,或者設(shè)置提醒,則系統(tǒng)將通過算法得出反饋意見,并轉(zhuǎn)達給用戶。
該系統(tǒng)在使用上有一定的局限性,硬件條件上需要一個擁有Android平臺的設(shè)備,軟件方面,需要一定的空間存儲定位數(shù)據(jù)。如何優(yōu)化數(shù)據(jù)存儲,如何保證數(shù)據(jù)安全性是今后將要考慮和改進的地方。