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