網(wǎng)絡(luò)模式下,環(huán)境監(jiān)測系統(tǒng)的遠(yuǎn)程服務(wù)器開啟UDP Server服務(wù),硬件系統(tǒng)作為UDP Client向遠(yuǎn)程服務(wù)器發(fā)送數(shù)據(jù)??蛻舳伺c遠(yuǎn)程服務(wù)器采用Http Post形式交互。客戶端根據(jù)GPS信號計算需展現(xiàn)的GIS地圖區(qū)域并獲取監(jiān)測點(diǎn)位置信息,然后去查詢離線地圖中是否包含該區(qū)域,如有則展示離線地圖,否則從服務(wù)器獲取地圖(地圖的加載通過移植ArcGIS for Android實現(xiàn))。服務(wù)器根據(jù)環(huán)境監(jiān)測點(diǎn)位位置獲取該點(diǎn)位最近上傳的12組數(shù)據(jù),并將它們封裝成JSON格式,以數(shù)據(jù)流形式返回客戶端??蛻舳私邮盏巾憫?yīng)數(shù)據(jù)進(jìn)行顯示操作。交互過程中在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)采用AES算法進(jìn)行加密。環(huán)境監(jiān)測系統(tǒng)網(wǎng)絡(luò)模式顯示效果如圖所示。
客戶端可將單機(jī)模式下存儲的數(shù)據(jù)采用HttpURLConnection方式上傳至服務(wù)器,遠(yuǎn)程服務(wù)器接收保存數(shù)據(jù)文件,并啟動數(shù)據(jù)解析進(jìn)程,解析文件頭、時標(biāo)區(qū)數(shù)據(jù),逐行獲取環(huán)境監(jiān)測數(shù)據(jù)并將它們導(dǎo)入數(shù)據(jù)表。
客戶端支持用戶查看測量點(diǎn)周圍的全景圖。通過移植PanoramaGL包實現(xiàn)用戶與全景圖交互的旋轉(zhuǎn)、放縮等事件,所有監(jiān)測點(diǎn)位的全景圖都存放在遠(yuǎn)程服務(wù)器上,客戶端從服務(wù)器下載全景圖后進(jìn)行展示。
為了向用戶推送合適點(diǎn)位的環(huán)境監(jiān)測數(shù)據(jù),客戶端采用數(shù)據(jù)挖掘算法提取距離用戶最近的監(jiān)測點(diǎn)位信息。環(huán)境監(jiān)測系統(tǒng)的數(shù)據(jù)挖掘流程如下:
a. 利用K-Mean算法對后臺記錄的用戶所在位置的GPS信息和調(diào)取點(diǎn)位的位置信息進(jìn)行聚類分析,一般情況下最多允許將位置數(shù)據(jù)分為3個類別,統(tǒng)計每簇數(shù)據(jù)中數(shù)據(jù)的個數(shù),選取數(shù)據(jù)個數(shù)最多的簇為最終計算結(jié)果;
b. 計算出數(shù)據(jù)簇的中心位置,然后由中心位置坐標(biāo)逐漸向外延伸直到至少包含一個監(jiān)測點(diǎn)位;
c. 最后利用KNN最鄰近算法,以監(jiān)測點(diǎn)位位置坐標(biāo)為訓(xùn)練集數(shù)據(jù),數(shù)據(jù)簇的中心位置為測試數(shù)據(jù),得到距離數(shù)據(jù)簇中心最近的監(jiān)測點(diǎn)位。
環(huán)境監(jiān)測系統(tǒng)的客戶端會在用戶登錄時優(yōu)先推送這些點(diǎn)位的環(huán)境監(jiān)測數(shù)據(jù),推送的消息以Notification形式出現(xiàn)在用戶手機(jī)的通知欄,用戶只需點(diǎn)擊通知欄信息就可以跳轉(zhuǎn)到遠(yuǎn)程數(shù)據(jù)調(diào)取頁面。