地质灾害点位置导航与信息查询软件设计与实现
2021-11-28陈长军
陈长军,陈 源
(1.中南财经政法大学外国语学院,湖北 武汉 430073;2.中国地质大学(武汉)远程与继续教育学院,湖北 武汉 430074)
0 引言
地质灾害是指因地质动力活动和环境异常变化形成的不良地质现象,如滑坡、地震等[1]。随着人类活动范围越来越大,同时伴随地球地质的变化,其带来的地质灾害也逐渐引起人们重视。由于地质灾害具有不确定性、破坏性强等特点,已成为影响社会经济发展的重要因素之一,严重危害着人类生命与财产安全[2]。
根据我国地质灾害信息化建设的需要,利用计算机技术等对地质灾害地区数据信息进行统计与信息化处理,使人们能够很方便地查询地质灾害点相关信息已经成为必要手段[3]。随着地质灾害信息化的不断发展,已诞生了许多研究成果,如地理信息系统(Geographic Information Sys⁃tem,GIS)等[4]。高德地图API(应用程序编程接口)具备免费且操作性强的特点,被广泛用于开发基于地理位置信息的应用软件与信息管理系统[5]。
随着互联网的不断发展,智能手机作为信息传输的载体已融入到人们的日常生活中,移动端Android 系统所占市场份额不断扩大,因此可利用Android 平台进行应用软件推广[6]。在Eclipse 开发环境下,利用Java 作为开发语言,以简洁、形象、生动的形式展现地质灾害点情况,使地理位置相关信息可视化,并实现地质灾害点标注、信息查询、自我定位、地图搜索与路线规划等功能[7]。同时,通过设计与实现UI 布局,实现友好的用户使用界面。
通过查阅相关文献了解到,随着GIS 的广泛应用,一些系统和APP 均开始用于地质灾害信息调查[8-10]。本文总结了相关系统和APP 在技术与功能上的优缺点,并结合实际需求进行改进,设计基于Android 手机客户端的地质灾害点位置导航与信息查询应用软件。同时,在实现过程中对系统数据量及oracle 数据库特性进行分析,利用远程加解密方式获取地质灾害点的地质灾害数据,采取本地SQLite 数据库用作缓存,从而提高了数据获取速度,且降低了软件开发成本。
1 技术路线
图1-图3 给出了地质灾害点位置导航与信息查询应用软件的整体技术路线设计,分别为基础理论研究及软件分析与设计、软件开发与实现、软件测试分析。
Fig.1 Basic theoretical research and software analysis and design图1 基础理论研究及软件分析与设计
2 软件功能设计
2.1 客户端架构设计
Fig.2 Software development and implementation图2 软件开发与实现
Fig.3 Software test analysis图3 软件测试分析
本文使用三层软件架构模型,包括:用户界面层、业务逻辑层、数据访问层[11]。在三层架构模型的基础上进行Android 应用软件开发,既保证了安全性与稳定性,又提升了用户对软件的使用体验。客户端架构设计如图4 所示。
2.2 基本功能模块设计
软件设计主要围绕注册/登录、地图浏览、自我定位、地图搜索、地质灾害点标注与信息查询、出行路线规划等功能模块的需求展开。客户端用户用例如图5 所示。
3 数据库设计
该软件具有庞大的地质灾害点数据,因此不可能将其存储在本地数据库,而是需要通过远程服务器进行读取,本地数据库仅用作数据缓存。利用轻量级SQLite 数据库存储数据,仅占用很少的Android 系统内存。在实际软件开发中,SQLite 可保障数据的全面性与安全性,将其用作本地数据库缓存可加快数据加载速度[12]。
依据地质灾害点位置导航与信息查询应用软件的功能需求,其本地数据库由两部分组成,其中一部分是管理员表,管理员可输入账号密码登录进入系统。管理员(ad⁃min)字段主表如表1 所示。
Fig.4 Client architecture design图4 客户端架构设计
Fig.5 Client user case图5 客户端用户用例
Table 1 Admin field master table表1 管理员(admin)字段主表
本地数据库中的另一部分涵盖了若干地质灾害点的灾害信息表,根据实际需要将地质灾害点的地质灾害信息分成4 个不同种类,分别为斜坡(XP)字段主表、崩塌(BT)字段主表、滑坡(HP)字段主表与泥石流(NS)字段主表。这里以斜坡字段主表(见表2)与崩塌字段主表(见表3)为例,滑坡、泥石流字段主表与之类似。
4 软件功能实现
4.1 软件开发平台搭建
(1)Android 系统应用软件开发环境搭建。环境配置如下:一是安装Eclipse,二是安装Android SDK,三是安装ADT 插件[13]。
Table 2 Slope field(XP)master table表2 斜坡(XP)字段主表
Table 3 Collapse field(BT)master table表3 崩塌(BT)字段主表
(2)配置高德地图API。首先申请高德地图开发者密钥(key),然后进行高德SDK 配置,在高德地图中封装了一些常用功能,如位置导航、自我定位、地图搜索、路径规划等。软件开发人员在编写Android 应用程序过程中只需调用高德地图API 提供的一些特定接口即可实现软件所需的特定功能[14]。
4.2 部分关键功能实现
(1)注册与登录。注册/登录界面设计原则为清晰且易操作,并在软件主界面显示软件主要功能,如图6 所示。
Fig.6 Register/login/main interface menu item图6 注册/登录/主界面菜单项
(2)地质灾害点标注与信息查询。地质灾害点位置导航与信息查询应用软件的标记功能需要根据经度和纬度坐标在高德地图上进行标记,根据项目名称、地理位置、经度及纬度添加相关地质灾害信息[15]。地质灾害信息查询功能设置崩塌、滑坡、斜坡、泥石流4 大模块,点击标注点时弹出该标注点的相关地质灾害信息,如图7 所示。
Fig.7 Geological disaster information query and labeling图7 地质灾害信息查询与标注
(3)自我定位。设置定位返回按钮,在代码实现上需要:设置定位回调监听函数,利用读取到的经纬度信息返回自己所在位置;设置定位监听函数,在自己所在位置进行数据记录;设置定位成功回调函数,在自我定位功能实现后停止监听。
(4)地图搜索。用户输入相应目标地址的关键词,即可在地图上显示搜索的目标地址及相应经纬度坐标。通过地址查询经纬度是指用户输入地址名称,程序通过前向地理编码获取与该位置对应的经度与纬度[16]。
(5)路线规划。路线规划功能模块提供3 种路线规划方法:步行路线规划、骑行路线规划与驾驶路线规划。根据起点、终点及数据库中的地质灾害点信息,为人们规划合理的出行路线,在路线经过的地方可看到相应地质灾害点。通过该功能模块的设计,可保证人们出行安全,同时提高出行效率。
(6)UI 设计。Android 有5 种布局模式:线性、相对、绝对、表格与单帧,通过不同布局模式可轻松实现美观、实用的UI 界面[17]。
(7)地质灾害点数据获取。通过使用Internet 访问服务器端数据库接口获取地质灾害点的地质灾害数据信息。移动终端访问服务器端接口并以参数形式提交地质灾害点数据信息与身份识别码,用于验证上传数据的合法性。具体操作如下:Android 客户端向服务器端发出搜索请求,服务器端验证身份,若身份匹配则返回相关的地质灾害点数据。返回的地质灾害数据用json 进行封装,Android 端接收到数据后解析json 数据串,最后把相关的地质灾害点数据展现在地质灾害信息查询功能模块上[18]。Android 端通过oracle 的jdbc 驱动程序直接访问oracle 数据库的客户端。由于地质灾害点位置导航与信息查询应用软件连接的是远程oracle 数据库,因此使用时必须连接互联网,从而将地质灾害点相关数据信息表读入本地数据库。数据获取界面如图8 所示。
(8)数据加密与远程传输。应用软件在远程调取数据时考虑到数据信息易发生泄露,因此在软件开发过程中对数据获取功能添加了加解密措施。在实际应用过程中,应用较多的是RSA 加密技术。RSA 算法是一种常用的非对称加密算法。为确保信息数据的安全性,需要更安全的公钥加密技术,因此AES 公钥加密算法应运而生,AES 算法属于对称加密算法[19]。
在使用对称加密算法AES 之前,为了不让AES 的密钥被外人获取,本文首先利用RSA 加密算法对其公有密钥进行一次深度加密,使用时通过RSA 解密出其公有密钥,之后再进行数据传输,如此才能保证数据的安全性[20]。
地质灾害数据在传输过程中可使用技术手段将其转换成为字符串,对于字符串的操作则简单的多。在数据传输之前,对数据发送方进行身份安全验证,安全验证通过之后方可调取数据库的数据,该操作有点类似于网络安全通信TCP/IP 协议中的“三次握手机制”。
Fig.8 Data acquisition interface图8 数据获取界面
5 结语
本文结合高德地图API 及Android 开发技术设计一款地质灾害点位置导航与信息查询应用软件,通过高德地图API 嵌入地质灾害信息,实现地质灾害数据的信息化,同时利用手机端进行推广,实现对地质灾害的监控与预防。随着GIS 技术日趋成熟,高德地图API 与数据库的结合将广泛应用于地理信息领域。但该软件还存在不足:一是在软件实现过程中,相关算法尚有较大的改进空间,可作进一步研究,例如如何能快速查询地质灾害点相关数据,在位置导航过程中如何能更加快速、精确、合理地规划出行路线等;二是智能手机移动端还可开发支持跨平台iOS 系统的版本,使iPhone 用户也可使用该软件。后续将优化相关算法并探索iOS 系统版本,同时研究如何结合卫星摄像技术将实时地质灾害数据上传到客户端实现监测预警,以更好地防患于未然。