支持多应用场景的地理信息采集系统设计 | ![]() |
随着时代进步,地理信息服务的形式不仅要求文本和定量的数值,还需要更加直观、形象的数字图像、音视频等信息表现形式。如何快速采集多样化地理信息将是地理信息服务发展的关键[1]。传统外业地理信息采集主要通过工作人员现场查看,使用相机拍照留存,纸质文档记录等方式进行作业。这种方式后期资料整理工作量庞大,且费时费力、时效性差,统计分析也困难。
移动GIS是GIS与计算机技术、现代通讯技术、GPS技术相结合的产物,其目标是可以在任何时间、地点,为任何人和事提供服务[2]。将Web技术和移动GIS技术用于外业地理信息采集,充分融合常见安卓智能手机提供的各项传感器技术,可使数据获取更简单、直接,获取的数据更科学、准确,同时也保障了数据传输的时效性和安全性,简化了工作复杂度,使外业地理信息采集更加高效、可靠。该技术在外业信息采集方面的应用日益广泛,已逐渐成为业内的主流解决方案[3-5]。
数据是可行性研究的基础[6],例如农业相关的研究,对作物长势、病虫草害及土壤墒情等相关信息的采集也是研究的重要部分[7-9];对种植产业分析研究,前期需花费大量时间进行种植作物信息采集。外业采集涉及到多项属性采集,甚至任务完成进度改变,采集属性也随之变化。如统计局进行人口普查时,首先要进行建筑物信息的采集,在建筑物信息全部采集完成后再进行人口信息采集。该项目涉及到两个应用场景,单应用模式系统无法满足多应用场景需求。本文从信息的定义、采集、发送、存储基本流程出发,提出一种支持多应用场景的地理信息采集系统设计方案,用于解决上述问题。该方案通过建立信息采集需求与数据结构之间的映射关系,生成采集信息配置文件,以数据及需求为驱动,快速构建系统,并自动生成对应的采集界面,旨在实现满足工作内容定制的便捷快速的外业信息采集系统[10]。
1 应用场景需求分析地理信息采集工作广泛存在于各级政府部门(如各街道办、区政府)、各委办局(如环保局、民政局、林业局等)和研究院。虽然不同场景的业务类型略有不同,但核心业务流程大多相似。因此,为使系统支持多应用场景的信息采集,系统需满足如下业务需求:
1)用户需求。为使所有应用场景都共享一套用户权限,系统设置外业采集人员、数据管理人员和分析决策人员3种角色。所有角色都可登录移动端进行数据采集,但只有数据管理人员和分析决策人员可登录网页端监管平台。数据管理人员能操作与项目定制、数据管理相关的功能,无法操作与分析决策相关的功能,分析决策人员与之相反。
2)地理信息采集需求。网页端需提供采集主题定制、数据审核、数据管理、统计分析等功能。移动端根据管理人员定义的采集主题,如需要采集哪些字段信息、字段控件类型、哪些是必填信息、是否需要照片视频等,自动生成对应的安卓控件,并在控件加上相应限制。另外空间要素绘制工具也应根据管理人员的定义进行显示。
3)地图服务需求。不同应用场景需使用不同地图服务,可以进行地图服务定制。下面通过具体的项目说明地图服务定制的重要性:①在种植作物信息采集项目中,外业人员只需采集种植作物的位置信息和属性信息,使用普通在线地图服务即可;②统计局正在进行机密信息采集,采集过程中不能上网,因此移动端无法使用天地图等在线地图服务,系统需支持离线地图包的加载使用或自行发布的地图服务;③在人口采集项目中需要采集建筑物信息,因此需要街道名清晰的地图和高精度影像地图。
4)采集数据组织管理需求。外业数据涉及到地理位置,在传输过程和将其存储在数据库的过程中需要进行加密处理。另外工作区域影像涉及到机密问题,也需要进行加密。
2 系统设计方法 2.1 数据驱动的开放式设计系统支持多应用场景,工作人员只要定制好采集的字段信息、字段的控件类型及控件属性、地图服务、空间要素绘制工具等内容,移动端即可加载对应的地图、空间要素绘制工具、信息填写页面等。系统可进行采集项目内容定制,需要保存定制的内容,可直接将内容保存在数据库中,该方法将极大影响定制内容的复用率。系统定义一种XML配置文件来记录定制内容,使用XML配置文件将提高定制内容的复用率。例如,项目B与项目A只有少部分字段信息不同,那么定制项目B的时候只需要复制项目A的配置文件,再进行少量修改即可。XML配置文件解决移动端和服务器数据库的一致性问题,其具体属性及逻辑结构见图 1。
![]() |
图 1 XML配置文件逻辑结构图 Fig.1 Logical Structure Diagram of XML Configuration File |
2.2 架构设计
系统包括移动端和服务端,移动端面向外业人员,用于外业数据调查采集;服务端面向管理人员和决策人员,用于后台管理和监管决策,总体架构如图 2所示。系统集采集主题定制、外业数据采集、实时监管和统计分析等功能于一体。主题定制即根据采集需求配置相关的地图服务、采集字段信息、定位工具、空间要素绘制工具等内容,并使用XML文件记录上述内容。为方便数据管理人员进行不同项目的数据操作,需要降低数据之间的耦合性。
![]() |
图 2 系统总体架构图 Fig.2 Overall Architecture of the System |
系统使用PostgreSQL数据库,可通过PostgreSQL的模式来解决上述问题。模式可以包含表、视图、索引、数据类型、函数和操作符等,相同的对象名称可被用于不同的模式中,且不会出现冲突。基于模式可将数据库设计为一个系统数据库和多个项目数据库,系统数据库存放系统的共有数据,如用户信息、用户权限信息、项目配置文件信息等,项目数据库存储该项目的外业采集数据。对于多媒体数据,若直接将其存储在数据库中,会占用大量空间,而且存取速度也很慢,严重影响系统性能和用户感受,因此系统使用数据库加文件的方式进行综合管理。文件服务器用于存储照片和视频,除此之外还可存储离线切片地图包tpk文件和配置文件。
2.3 功能设计系统使用流程如图 3所示,结合流程图,对服务端和移动端的功能分别进行介绍。
![]() |
图 3 系统使用流程 Fig.3 Flow Chart of System Usage |
2.3.1 服务端功能
服务端为管理人员提供采集项目定制、数据审核、实时监管、统计分析等功能,为决策人员提供决策分析的功能。系统可创建多个项目同时使用,因此服务端功能都是针对具体项目,其所用到的字段信息来自每个项目的XML配置文件。
1)用户模块:提供用户注册、登录、修改密码、找回密码功能。最重要的是提供权限控制,只有管理人员和决策人员可登录网页端。
2)项目管理:服务端需提供采集项目定制功能,并提供操作简单的页面用于输入或选择相对应的内容。除此之外,还应提供项目人员选择、项目删除和项目定制内容查看功能。
3)数据管理:外业工作人员采集完数据后,管理员可进行数据查看,并且点击数据可获得详细的数据信息;若发现数据存在错误,可审核该数据不通过;另外还需提供搜索数据功能,以便数据较多时可快速定位到该数据。
4)工作监管:针对项目工作的开展,服务端需提供项目采集数据的分布展示、外业人员的实时位置展示等功能。
5)汇总统计:服务端需提供基本的统计分析功能,即根据数据库中字段自行选择统计样式进行统计;另外还需工作进度统计功能,包含每日采集量和累计采集量统计。
6)分析决策:针对采集过程的外业人员工作情况,服务端需提供工作报告生成功能,报告可反映工作进展与外业人员工作情况等信息。
2.3.2 移动端功能在管理人员定制好采集项目,并确定该项目的外业人员后,在该采集项目中的外业人员登录移动端可下载该项目的XML配置文件,根据XML配置文件加载地图服务、生成空间要素绘制工具、生成定位工具和属性填写页面,即可进行数据采集。移动端主要有如下功能:
1)用户模块包含登录、注册、密码修改、注销等功能。
2)地图模块包含离线地图加载(包括tpk文件、加密tpk文件、shp文件等)、在线地图加载(包含天地图、谷歌地图、ESRI在线服务以及其他使用ArcServer发布的地图服务)、地图基本操作(平移、缩放、旋转等)以及图层管理等功能。
3)信息采集包含空间要素采集(位置点、点、线、面、矩形、圆形等的绘制以及线和面要素的节点编辑、删除功能)、属性信息采集、多媒体信息采集(照片和视频)、动态页面生成(文本输入框、整数输入框、浮点数输入框、语音输入框、城市选择器、时间选择器、单选框、多选框、列表框、动态日期等),支持shp格式数据的字段增减和空间要素和属性的修改。
3 系统实现与应用移动端系统的开发环境为Android Studio+Android SDK+JDK1.8。服务端开发环境为IntelliJ IDEA+JDK1.8,框架为SpringBoot+MyBatis+ Shiro。数据库为PostgreSQL数据库,该数据库支持控件数据拓展,并具备丰富的空间操作函数[11]。移动端和服务端的开发均遵循视图、模型、控制器(model view controller,MVC)设计模式,数据实体的封装放在实体层,业务控制逻辑放在控制层,页面显示由视图层实现,实现软件开发的“高内聚、低耦合”[12]。
3.1 关键技术与实现1)XML配置文件动态解析。服务端需提供操作简单、具有引导性的采集主题定制界面供管理人员使用。利用Java的JDOM工具包将前端的定制内容生成XML文件。后台系统读取XML配置文件并利用Java的注解和反射功能将相应的信息填充进Java Bean,通过Java Bean记录的数据库表名、字段名、字段类型等信息。在项目开始后,根据Java Bean的属性创建数据库表;移动端读取XML配置文件生成对应的采集数据页面;采集数据上传至服务端后,系统快速迭代地将采集数据插入到相应的数据库表中,多媒体文件信息也插入到相应位置。
2)动态查询统计。系统的采集项目都是由管理人员定制的,项目的数据库都是不同的,因为统计分析需要运行动态SQL。基础的JDBC或其他类似框架,都存在根据不同条件拼接SQL语句的繁琐与困难。而MyBatis的强大特性之一便是其动态SQL,动态SQL可被用在任意SQL映射语句中,且MyBatis使用OGNL的表达式来简化某些逻辑的实现与SQL语句的拼接。
3)采集界面动态生成。对配置文件进行解析,获取用于动态页面生成的属性,如页面中控件的类型、模式等。在控件生成过程中要解决控件之间的依赖性,例如,针对是否解决污染选项,若选择“是”,则要显现“解决方案”输入框,让使用者填写详细的解决污染的方案内容;若选择“否”,就不显现。控件之间的依赖性通过脚本事件控制,脚本事件是通过观察者设计模式来实现的。该模式定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
4)定位轨迹与位置共享。通过定位工具可以记录当前位置。在位置变动时,通过记录位置点来实时绘制当前轨迹线。位置共享则要求客户端与服务器实现双向通信,过去都是采用长连接或者轮询等方式来获取服务器向客户端推送的更新信息,但是这两种方式都会有较多的额外开销,占用大量的计算机资源。系统使用WebSocket协议规范,WebSocket约定了一个通信规范,通过握手机制,客户端和服务器之间能建立一个类似传输控制协议(transmission control protocol,TCP)的连接,从而实现服务器主动向客户端推送消息[13]。
3.2 应用实例1)散乱污信息采集。环保局欲进行散乱污企业信息采集工作,需要找出区域内所有散乱污企业并登记上报,上报内容包括公司名称、公司地址、采集时间(自动生成)、污染类型(可从大气污染、水污染、土壤污染、固体废弃污染和噪声污染中多选)、是否进行整改(从是和否选项中进行单选)、整改方案和备注,另外提供拍照和录像功能。该项目使用普通在线地图服务即可,移动端散乱污信息采集界面见图 4(a)。
![]() |
图 4 应用实例地图服务 Fig.4 Application Examples of Map Service |
2)建筑物信息采集。统计局欲进行建筑物信息完善工作,要将某区域内的所有建筑物信息采集上报,上报内容包括建筑物名称、建筑物标准地址、建筑用途、结构类型、建筑层数、建筑年代、有无电梯、备注信息等。该项目要求地图服务具有清楚的街道名以及高清影像图,移动端建筑物信息采集界面见图 4(b)。
3)入户信息调查。入户调查走访目的是核实低保户家庭的真实性,确保发放到位,保证公平公正。因此调查过程中要确保调查人员真正进入低保户住所,并拍摄门牌号、室内情况、收入证明情况等相关照片。为了对地址数据进行保密以及使地图具有一定的指向性,该项目要求地图服务具有普通的地图内容,且在普通地图上加载内部发布的低保户地址数据服务图层,移动端入户信息调查界面见图 4(c)。
4 结束语针对当前部分信息采集系统无法满足多主题及信息自定义的不足,本文提出了一种支持多应用场景系统设计方案。建立采集信息需求与数据结构间映射关系,通过XML配置文件记录当前映射关系,以数据和需求为驱动,快速构建信息采集系统。采集系统的其他功能都依据配置文件进行快速构建,如地图服务依据配置文件中定义的地图类型和访问接口进行加载;采集页面依据配置文件中控件类型及其之间的依赖关系,使用观察者模式控制控件的可见性,从而进行快速加载显示;系统依据配置文件中的字段名和字段类型等内容快速构建动态SQL,并运行生成数据库表。系统的创新之处在于降低采集功能与需求之间的耦合性,以数据和需求为核心驱动。另外,以配置文件记录需求与数据结构间的映射关系,极大提高配置文件的复用性。
系统从信息的定义、采集、发送、存储、处理流程出发进行设计。但随着信息化技术的深入发展,信息需求增加并且要求更高,会使得当前系统应用乏力。后续研究将会进一步完善系统,使系统具有更广阔的应用前景。
[1] |
Lwin K K, Murayama Y. Web-Based GIS System for Real-Time Field Data Collection Using Personal Mobile Phone[J]. Journal of Geographic Information System, 2011, 3(4): 382-389. DOI:10.4236/jgis.2011.34037 |
[2] |
康铭东, 彭玉群. 移动GIS的关键技术与应用[J]. 测绘通报, 2008(9): 50-53. |
[3] |
赵庆展, 靳光才, 周文杰, 等. 基于移动GIS的棉田病虫害信息采集系统[J]. 农业工程学报, 2015, 31(4): 183-190. DOI:10.3969/j.issn.1002-6819.2015.04.026 |
[4] |
Ploeger S K, Sawada M, Elsabbagh A, et al. Urban RAT: New Tool for Virtual and Site-Specific Mobile Rapid Data Collection for Seismic Risk Assessment[J]. Journal of Computing in Civil Engineering, 2016, 30(2): 04015006. DOI:10.1061/(ASCE)CP.1943-5487.0000472 |
[5] |
尚明华, 秦磊磊, 王风云, 等. 基于Android智能手机的小麦生产风险信息采集系统[J]. 农业工程学报, 2011, 27(5): 178-182. DOI:10.3969/j.issn.1002-6819.2011.05.032 |
[6] |
吴娟, 张冬青, 李璐璐. 论信息数据是可行性研究的基础[J]. 黑龙江水利科技, 2007, 35(2): 142. DOI:10.3969/j.issn.1007-7596.2007.02.084 |
[7] |
车艳双, 李民赞, 郑立华, 等. 基于GPS和PDA的移动智能农田信息采集系统开发[C]. 中国电机工程学会农村电气化分会科技与教育专委会2010年学术年会, 北京, 2010
|
[8] |
张瑞瑞, 赵春江, 陈立平, 等. 农田信息采集无线传感器网络节点设计[J]. 农业工程学报, 2009, 25(11): 213-218. DOI:10.3969/j.issn.1002-6819.2009.11.038 |
[9] |
Wang X J, Lian Y H, Jing W. Research on Modern Agricultural Information Computer Acquisition System[J]. Agro Food Industry Hi-Tech, 2017, 28(1): 1 738-1 748. |
[10] |
钟先金, 吴会胜, 叶哲璐, 等. 基于Java EE的新型基础测绘业务信息化管理系统设计与实现[J]. 测绘地理信息, 2020, 45(2): 79-82. |
[11] |
吴亮, 陆锋, 刘兴权, 等. LibPQ的PostgreSQL空间几何对象的实现方法[J]. 地球信息科学, 2006, 8(1): 35-38. DOI:10.3969/j.issn.1560-8999.2006.01.009 |
[12] |
任中方, 张华, 闫明松, 等. MVC模式研究的综述[J]. 计算机应用研究, 2004, 21(10): 1-4. DOI:10.3969/j.issn.1001-3695.2004.10.001 |
[13] |
陆晨, 冯向阳, 苏厚勤. HTML5 WebSocket握手协议的研究与实现[J]. 计算机应用与软件, 2015, 32(1): 128-131. |