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