罗 俊
(1.福州大学 福建省空间信息工程研究中心, 福建 福州 350002)
警用地理信息系统(PGIS)最大的特点就在于充分利用地理空间信息技术,实现各类警用信息的空间化、可视化,并通过电子地图进行查询和分析[1]。发挥这些功能除了需要完备、先进的软、硬件基础支撑环境和独立开发的系统软件外,数据平台的建设更是一项基础性的工作。由于PGIS中数据来源不一致、数据类型多样且涉及到数据共享等问题,因此必须从总体上对数据平台的体系结构进行设计,以规范各个阶段的工作内容和它们之间的承接关系。本文结合福州市警用地理信息系统项目,探讨了数据平台建设中涉及的关键技术。
PGIS提供了一个集成不同警种业务系统的平台,同时其本身又与具体的公安业务无关;各个应用间彼此相对独立,同时又要求平台间能够实现数据共享。因此,PGIS中既包含电子地图、基础设施这样的公共数据,又可以根据需要增加诸如消防、禁毒、边防等特定业务的专用数据。按照公安部制定的“三库”建设方案[2],PGIS数据库的内容可以分为以下5类:
1)基础地理信息:包括水系、地貌、植被等自然地理信息以及居民地、交通、境界等社会地理信息;另外,还包括矢量、影像、矢影叠加、数字地形等多种类型的地图。通过对不同比例尺和不同分辨率的地图进行分级显示,为用户提供丰富的空间信息表达形式。
2)警用公共地理信息:包括场所、单位、基础设施等需要重点关注同时又是多个业务部门共同使用的数据。
3)业务专用地理信息:各个业务部门反映特定警务活动和警务管理的专用信息,如消防专用地理信息中的消防栓、消防安全重点单位等,这部分数据由相应业务部门负责采集和更新维护。
4)标准地址:按照一定的规范要求,对本地门牌地址进行结构化处理、编码,赋以空间坐标后形成数据库。地址采集是否标准,直接关系着业务关联数据能否在地图上准确定位。
5)业务地理关联信息:通过提取业务数据库中的地址信息,将其与标准地址进行比对后建立地理关联,形成业务地理关联数据库。
PGIS数据库建立的方式包括3种[3]:①从测绘部门获得基础地图数据,配图加工后对配图成果进行切图处理,形成栅格图片后入库;②使用数据采集工具,在地图上进行点、线、面等地理实体的手动标注,并输入相应的属性信息;③采用地址比对方式,根据坐标字段对业务数据批量赋予空间属性(X、Y坐标),进行属性空间化后得到空间图层。
3种方式虽然在数据源、建库流程等方面各不相同,但得到的数据会在统一的标准下进行管理,构成支撑整个数据平台的基础,并可以由此自下而上将数据平台划分为3个层次:数据存储层、数据管理层和数据访问层(见图1)。
1)数据存储层:不仅是“静态”地存储不同类型的数据,更重要的是建立长效、及时的更新机制,以满足公安业务对数据现势性、准确性的要求。
2)数据管理层:实现对关系数据表和空间图层的管理,包括分类代码的添加、元数据的更新、访问权限的设置等,让数据得到更好的使用和维护。
3)数据访问层:对外开放多种方式的数据查询和操作的接口供各个应用程序调用,如Web Services、Xquery、XSLT等,使业务逻辑不直接作用于数据实体,降低它们之间的耦合度以提高数据连接的复用性和扩展性。
图1 数据平台体系结构
电子地图是PGIS平台的基础数据,除了基本的地图浏览和信息定位外,一些诸如案件空间统计分析、预案模拟演练等专业操作,也都是在电子地图上完成的。因此,对地图的访问是否流畅、对地图的交互操作是否动态,都直接影响着整个平台的使用效率和用户体验。瓦片切图作为地图预生成思想的实现技术,很好地解决了这些问题。
瓦片地图采用的是一种多分辨率的金字塔模型,从顶层到底层分辨率依次增大,瓦片的数量也呈级数增多[4]。实现过程一般采用“服务器端切图+客户端缓存”的方式,即切割出的瓦片存储在服务器上供客户端动态加载,同时缓存到客户端以进一步提高地图浏览的速度。
切图从地图范围的左上角开始,也就是说选择的切图原点的坐标要小于最小经度、大于最大纬度,同时能够被切图间距整除。如此逐层切割后构成整个瓦片金字塔,通过客户端浏览器即可实现无缝拼接的多级缩放展现,如图2所示。
从图3可以看出,数据集成包括数据抽取、数据转换和数据加载3个过程。
图2 地图显示界面
图3 数据基础过程模型
第一次与数据源建立链接时通常采用的是全量抽取的方式,也就是将数据源中表或视图的数据原封不动地复制出来,而后则根据设置的周期(如每天)采用增量抽取的方式来更新目标数据。对于增量抽取过程,常用的捕获数据源变化的方法有触发器、时间戳、快照、全表比对、日志表等[5]。由于时间戳方式具有较优的抽取性能,抽取规则相对简单(只需在源表中增加时间戳字段)且执行效率高(只抽取时间戳列中值发生变化的记录即可)等特点,较适合用于像PGIS这样数据量大且来源多样的系统。
源数据与目标数据间存在的异构和语义不一致等问题,需要通过中间层来实现数据转换,XML由于其灵活的自定义性和可扩展性,被广泛应用于该过程[6]。首先将源数据转换成XML文档,数据加载时只需解析存储在XML Schema中的转换规则和映射关系,便可实现XML文档到目标数据的转换。数据表与XML之间的映射方式,一般包括模板驱动和模型驱动2种[7]。模板驱动并没有事先定义好映射关系和转换规则,而是在XML文档中嵌入一些可实现的指令(通常为SQL语句),系统识别并处理后,指令就会被执行结果所替换;模型驱动则是将XML文档结构与数据表之间的关系用数据模型事先定义好,转换时只需插入对应位置即可,常用的数据模型有表格模型和专用对象模型等。
地址匹配是指将属性数据源表中的地址字段按照一定的策略与标准地址进行比对,比对成功的记录则通过插值等方式获得相应位置的空间坐标,最后按照设定的量化规则来评价匹配结果的准确度[8]。匹配之前首先要根据标准地址库来建立地址模型和编制地址词典,详细的工作流程如图4所示。
图4 地址编码工作流程图
ArcInfo的Geocoding和MapInfo的Map-Marker等都是较为成熟的地理编码模块。前者的一个典型过程可以包括:建立一个地址(cover add)、生成一个事件文件(event files)和地址匹配(address matching)3个步骤;后者不但支持自动模式的地理编码,而且当精确地址匹配失败时允许用户手动匹配。然而,由于中英文的差异,对中文地址进行地址匹配时需要进行特定的标准化。在本文的测试实验中,笔者采用“行政区划+街路巷+门牌号+楼牌号”的地址模型,如“福建省福州市鼓楼区福飞路133号9座”。将福州市旅店业信息表(总计1 904条记录)与福州市已上图的标准地址进行比对,并把匹配结果的准确度划分为4个等级,如图5和表1所示。可以看出,地址匹配技术不仅能够较大程度地实现自动批量添加空间坐标,同时还能为解决地址书写不规范等问题提供参考。
图5 匹配结果
表1 匹配结果分级统计
[1]孙丕龙,侯震宇,李家龙,等.浅谈警用地理信息系统的标准化建设[J].中国人民公安大学学报:自然科学版,2004,20(3):39-42
[2]易燕妮,吴晓佳,曾耀国.警用地理信息系统建设中地理信息的实用性探究[J].测绘与空间地理信息,2010, 33(3): 77-79
[3]张舒,李家龙,李鹏,等.基于B/S构架统一的警用地理信息更新与服务体系[J].中国人民公安大学学报:自然科学版,2005(3):85-88
[4]赵大龙,孙恒宇.地图切片技术分析与简单实现[J].测绘与空间地理信息,2010, 33(1):116-117
[5]戴浩,杨波.ETL中的数据增量抽取机制研究[J].计算机工程与设计,2009, 20(23):5 552-5 555
[6]吴淑雷,雷景生,陈焕东.基于XML的异构数据交换技术[J].广西师范大学学报:自然科学版,2007, 25(2):78-80
[7]罗思群.基于XML的数据交换[D].北京:中国科学院软件研究所,2001
[8]郭会,宋关福,马柳青,等.地理编码系统设计与实现[J].计算机工程,2009, 35(1):250-252