赵军,宫丽玮,周圣川,3,胡振彪,王海银,黄蓉
(1.青岛市勘察测绘研究院,山东 青岛 266032; 2.青岛市西海岸基础地理信息中心有限公司,山东 青岛 266000;3.山东省海陆集成与应用工程研究中心,青岛市海陆地理信息集成与应用重点实验室,山东 青岛 266032)
社会治理事件在业务流转系统中,由于某些事件的性质、类型、归属等问题难以界定(这里称之为复合型事件),往往涉及多个业务部门,在条例严格、流程精细、单向指派的业务流转系统中往往难以判断、下发、指派。实现复合型事件的高效管理,目前主要存在以下几点不足:①社会治理事件信息往往与空间信息紧密相关,传统业务系统无法较好地兼顾空间信息;②复合型事件往往附带文字、图片、视频等多类型属性信息,目前缺乏实现所有属性统一集成调用查看的手段;③缺乏复合型事件的可视化编辑方式。
基于以上问题的分析,本文研究采用PostgreSQL空间数据库+文件系统对事件数据进行存储管理,利用ArcSDE空间数据引擎作为应用系统与数据库服务器之间的接口,选用ArcGIS for JavaScript API实现社会治理事件的可视化管理和多媒体属性编辑,开发挂图作战系统,辅助指挥中心以“所见即所得”的形式实现对复合型事件的“督战”。
所谓挂图作战,即以地图为载体,决策层所有的现场指挥操作以一张图为平台,重现“立体沙盘”作战;这样,相比传统的业务系统,问题的所在地、类型、状态等情况更加浅显易懂,“督导通报”的效果更加显著,有助于社会治理事件的科学高效解决,推动智慧城市建设。
空间数据库是指地理信息系统在计算机物理存储介质上存储的与应用相关的地理空间数据的总和[1],主要采用关系型数据库管理系统来管理空间数据,具有高可访问性、空间数据类型复杂、实现属性数据和空间数据联合管理等优点。目前的空间数据库主要是建立在关系型数据库之上,通过空间数据引擎作为中间件(依托中间件屏蔽操作系统和数据库平台之间的差异),基于MVC模式,实现了系统功能模块与后台数据的分离,提高了系统的安全性和稳定性,降低了系统维护成本。
PostgreSQL是自由的对象-关系数据库服务器,功能强大。相比Oracle数据库,PostgreSQL完全开源,遵循BSD协议,具有较好的可扩展性。具有面向对象特性,包含类及继承等机制。支持丰富的数据类型,允许自定义数据类型;同时,还具有强大的跨平台性,是目前支持平台最多的数据库管理系统之一。
PostGIS作为PostgreSQL的空间扩展模块,增强了空间数据库的储存管理能力,提供了空间对象、空间索引、空间操作函数等空间信息服务功能,使PostgreSQL实现了对复杂的空间类型、空间分析、投影变换等功能的支持,遵循OpenGIS的规范,实现了对ArcGIS空间数据从管理平台到入库的无损过度,在数据库层面彻底实现了空间数据与属性数据存储的统一[2~4]。
从ArcGIS客户端软件到空间数据库入库管理,需要使用中间件-ArcSDE,ArcSDE是ArcGIS的空间数据引擎,是在关系数据库管理系统(RDBMS)中存储和管理多用户空间数据库的通路,通过该通路实现ArcGIS数据在PostgreSQL等多种数据库平台上管理地理信息。利用数据库的强大数据查询机制[5,6],ArcSDE实现了对地理空间数据的管理和在多用户条件下的高效并发访问。地理空间数据库存储原理如图1所示。
图1 地理空间数据库存储原理图
对于图片或者视频,在数据库中存储方式主要分为两种:①将多媒体数据直接以二进制文件形式存储在数据库中;②数据存储在磁盘,数据库字段中保存的多媒体数据路径。由于复合型事件附带的多媒体数据量庞大和对下面三个方面的考虑,针对多媒体属性信息这一块,本文选择第二种方案。
①对数据库的读/写的速度不如文件系统处理的速度。
②大并发访问的情况下,保存二进制,大字段数据会加重数据库负担,拖慢数据库;数据库备份变得巨大,越来越耗时间。
③文件的访问需要穿越应用层和数据库层,存储路径的方式在多媒体数据调用时的效率优于存储二进制的方式。
本文使用空间数据库与文件系统相结合的方式,实现对复合型事件地理空间数据的高效管理。
论文基于WebGIS搭建B/S挂图作战系统,实现不同街道办、不同问题类型的多源事件上传、管理、可视化和编辑;要求事件信息的编辑不仅包括空间属性的编辑,同时包括非空间文本属性、多媒体属性信息等全方位的数据编辑。技术路线主要包括客户端、服务端、数据库三个层面,如图2所示。
客户端系统整体架构采用HTML5、CSS、JavaScript进行开发。地图可视化采用ArcGIS for JavaScript API进行二次开发,发布地图瓦片服务,通过请求ArcGIS Server的rest服务实现地图的操作;系统UI框架和其他相关技术,使用JQuery EasyUI进行开发。
客户端与服务端的交互,基于Ajax引擎实现,采用XMLHTTP组件中的XMLHTTPrequest对象实现,客户端通过Ajax引擎向服务端发送HTTP请求,返回JSON数据对客户端进行显示,其最大的优势是实现异步请求,可以在无须等待情况下进行局部更新。
服务端使用Eclipse平台,基于Java Servlet+JDBC,实现数据增删查改等相关服务的开发;采用Tomcat部署相关服务,响应和处理HTTP请求。
数据库层面使用ArcSDE+PostgreSQL构建空间数据库,实现系统所需相关数据的管理[6~8]。
图2 系统技术路线图
系统的功能设计需要满足指挥中心人员对于复合型事件的管理、查看和编辑等社会治理事件管理的相关功能,因此,需要具备以下特点和功能:
(1)分级登录。系统需要具备分级登录体系,非登录用户只具备基础的地图漫游功能;不同街道办只能登录控制本街道范围内各类型事件问题,浏览编辑本街道范围内事件。
(2)事件数据可视化。系统实现事件数据的地图可视化,一键单击可以同时查询事件的基础属性信息和多媒体信息(图片、视频、文件)。
(3)事件数据编辑。系统可以实现事件信息的增删改功能,支持在地图上精确打点增加事件信息和附挂多媒体信息,支持事件信息的属性编辑和事件完成状态变更。
(4)事件信息统计。系统具备对区域范围内各类事件问题的统计分析,辅助用户了解事件分布特点和区域分布密度。
ArcGIS for JavaScript是Esri官方推出的WebGIS地图功能开发包,其本身是基于JavaScript语言的可以调用ArcGIS Server Rest API接口的脚本,将调用到的地图资源和地图服务整合到网络应用中[9,10]。
基于功能强大的Dojo JavaScript工具包,拥有强大的地理信息系统开发和定制能力,可以实现浏览器端地图的显示、浏览、查询、编辑等多项功能。ArcGIS for JavaScript开源,不需要任何密钥,具有良好的扩展性。
功能模块是系统功能的执行单元,彼此之间相对独立。合理的模块划分有助于系统的实现。本系统根据功能和不同应用场景划分为4个功能模块:用户登录、事件上传与可视化、事件编辑和统计分析。
(1)用户登录
系统开发用户登录功能实现事件的用户管理和事件控制。以街道办辖区范围作为事件上报和管理的临界范围。
技术实现如图3所示,在ArcGIS Server中发布街道办的要素类专题服务,通过Rest服务请求获得各街道办名称和街道办的GIS空间范围值Geometry,最后以街道名称作为key值,街道办对应的范围Geometry值作为value,构建JSON键值对。当选择各街道办时,由Geometry作为事件筛选条件,显示当前街道的所属事件。
系统登录UI设计如图4所示:
图3 系统登录控制流程图
图4 系统登录效果图
(2)事件上传与可视化
事件数据库表的表结构设计如表1所示。heatquestion、questioninfo、wczt、time、ssjd作为常规属性存储基础文本信息;mediadirectory负责记录事件的多媒体信息的文件夹路径,为避免文件夹重名,文件夹命名格式采用Unix时间戳;photoname记录图片名称,图片之间以分号隔开,如“1.png;2.png;3.png;”,程序调用时转化为数组;videoname记录事件的视频信息,以“mediadirectory/videoname”的方式构建视频完整路径。
事件信息数据库表结构 表1
事件上传与可视化,使用ArcGIS for JavaScript二次开发接口,将事件信息以ArcSDE数据源的方式发布WFS服务,使用安排WFS服务的playEdits方法,实现事件的上传;使用ArcGIS API上传事件的同时,将上传的图片、视频等多媒体信息通过开发Java Servlet文件上传接口上传至服务器文件系统,前端调用时通过拼接URL地址读取显示在前端地图。使用API的Featurelayer类可直接在地图上实现事件专题的显示,事件上传与可视化流程如图5所示。
系统效果图如图6所示,通过点击添加问题按钮,允许用户只能在当前选择街道的范围内打点,在下拉列表中选择事件问题类型,录入事件的属性信息,如整治状态、问题描述、图片、视频等,点击提交问题按钮即可实现事件问题的添加。在地图上点击事件图标,其所有的属性信息即可一览无余。
图6 事件上传可视化及属性查看效果图
(3)事件编辑
系统将事件信息的编辑分成两部分,即基础文本属性编辑和多媒体信息编辑。对于基础文本属性编辑,如完成状态等,直接在编辑状态下使用WFS服务的applyEdits方法。对于多媒体信息,applyEdits方法只能更改字段信息,对于路径指向的图片、视频源,则通过开发Java Servlet接口,更新文件系统中多媒体源文件,通过ArcSDE同步更新WFS服务,实现事件信息的编辑。流程图如图7所示。
图7 事件编辑流程图
编辑状态下单独开放多媒体编辑界面,如图8所示,通过简单地增加、删除按钮,可以快速实现原多媒体资源的增加、删除和替换。
图8 事件编辑效果图
(4)统计分析
系统基于Echarts工具进行事件信息的统计分析,实现以统计图的形式体现事件信息分布及统计情况。基于Rest服务实现事件信息的分街道、分类型统计。系统实现效果如图9所示。
图9 事件统计分析效果图
系统基于WebGIS,通过ArcGIS for JavaScript二次开发,实现了社会治理复合型事件的上传、编辑与可视化,实现了各街道范围事件管理的权限控制。以挂图作战的形式呈现在指挥中心大屏,很好地辅助了社会治理指挥中心对于复合型事件的管理和解决督查,对城市社会治理工作的有效开展起到了积极的推动作用。不足之处,系统在局部UI设计上有待优化,对于复合型事件处理过程中的状态监测也有待加强。