网络模式下,环境监测系统的远程服务器开启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形式出现在用户手机的通知栏,用户只需点击通知栏信息就可以跳转到远程数据调取页面。