基于SuperMap GIS的网络发布基础地形图数据库更新实践

2011-05-31 11:11高红心李楠
城市勘测 2011年6期
关键词:空间数据数据源图层

高红心,李楠

(西安市勘察测绘院,陕西西安 710054)

1 项目概述

本项目采用SuperMap GIS+Oracle的空间数据库局域网络发布方案,开发了西安市基础地形图发布空间数据库更新管理系统和西安市基础地形图局域网发布系统,建设完成了包括西安市1800余平方千米的城市大比例尺基础地形图、1∶1万分幅的高分辨率正射影像图、道路中心线、地名等数据的发布空间数据库及其局域网络发布[1]。目前,系统数据量已达15GB以上,数据以标准图幅计达到万幅以上,日均访问量数百人次,数据的更新维护管理工作量巨大。解决该系统数据库的自动更新管理、保持系统生命力意义重大。

2 SuperMap GIS简介

SuperMap GIS是整个超图GIS软件系列的一个统称,其中SuperMap IS.NET是超图推出的一款WebGIS产品。该产品与SuperMap Objects核心组件(含Super-Map SDX+空间数据库组件)紧密集成,共同完成空间数据库的管理和网络发布。SuperMap SDX+的一个重要特性是可以提供超图格式空间数据的复合数据集管理,该数据集可采用超图预定义或用户自定义的符号库、线型库、填充模式库对复合数据集元素符号化处理,最大限度的接近基础地形图的表现,从而便于地形图使用人员的识图、用图。如图1所示复合数据集,其中的数据元素与真实的数字地图表现非常相似。

本方案极大地减少了基础地形图数据的处理花费和管理层次,避免了大规模长耗时的数据检查、数据转换、数据拼接、拓扑处理等工作,具有建设成本低廉和建设周期较短,数据表现形象逼真,表现方法灵活多样等特点。

图1 SuperMap CAD数据库示例

3 项目空间数据库结构简介

本项目数据来源于基础地理信息数据库,由以下5个部分组成,如图2所示。

图2 发布空间数据库结构及地图示意图

(1)1∶500、1∶1 000地形图发布数据库

提供1∶500、1∶1000 SuperMap CAD格式地形图的查询、浏览、定位。由于整个西安市基础地形图数多达万幅以上,按原地形图分幅方案设计地图图层将带来极大的管理和应用困难。通过计算,我们选择了以1∶5 000矩形标准图幅范围为图层单位,即一个图层由100幅1∶500或25幅1∶1 000地形图合并而成,一方面减少了发布地图中图层的数量,另一方面,每一图层数据记录数又不致太多,从而较好地平衡了图层管理和存取效率之间的矛盾。

(2)1∶5 000地形图发布数据库

提供1∶5 000 SuperMap CAD格式地形图的查询、浏览、定位。

(3)1∶1万地形图发布数据库

提供1∶1万SuperMap CAD格式地形图的查询、浏览、定位。

(4)1∶1万分幅正射影像发布数据库

提供高分辨率卫星正射影像数据背景。

(5)基础地理信息发布数据库

为整个发布数据库提供数据浏览框架,提供地名、地址定位数据基础。

4 项目空间数据库更新流程

本项目采用了常规基础地形图库的图幅级更新机制,以图幅名称代码为索引,进行地形图数据的整体替换,如图3所示,其方法如下:

图3 数据更新流程图

(1)数据预入库检查

主要是地形图命名规范化检查和DGN文件的压缩处理。

(2)建立SDB数据源dataSource1

(3)数据格式转换和DGN数据导入

①将MicroStation DGN格式系列比例尺地形图、专题地图导入和转换为SuperMap SDB格式的复合数据集并存入dataSource1;②将遥感正射影像导入生成SuperMap格式的影像数据集并直接存入空间数据库。③将基础地理信息数据导入为GIS图层。

(4)数据检查及错误处理

对dataSource1的每个数据集进行图形偏移检测,如有偏移情况存在,对偏移情况进行自动处理。确定图形无偏移之后,程序检查是否存在赃点(图幅范围以外的点或其他要素),并进行相应处理。

(5)提取专题信息,生成新的数据集

主要提取图廓、点、线、面等信息,并将提取的信息放在图廓、地名点、道路中心线和房屋面数据集中,以实现地名、地址查询、定位和搜索。

(6)根据实际应用需要,对SDB数据重新组织合并存入Oracle数据库

主要是将1∶500和1∶1 000地形图合并为1∶5 000大小的矩形分幅的复合数据集。

选择地形图更新选项菜单。通过SuperMap SDX+连接和打开 1∶500地形图的 Oracle数据源 data-Source1。系统读取SDB数据源中的以图幅为单位的数据集Dataseti。依次提取Dataseti并计算出对应的GIS图层Dataseti j(合并后的1∶5 000大小的矩形分幅的复合数据集,此处i、j无实际意义,仅用于区分不同的目标数据集),搜索Dataseti_j中与Dataseti同名的所有元素,将其移入对应的历史数据集,而后将Dataseti中除图廓要素以外的所有元素存入Dataseti_j,将Dataseti中的图廓要素依以上办法存入相应的图廓数据集,同时将Dataseti的图名信息存入图名表(图名表保存了实际的地图数据集名称,即Dataseti图名信息,用于发布地图中地形图的图幅搜索和调用等功能),直到dataSource1中所有数据集都被处理为止。

(7)更新数据集空间范围和重建数据集空间索引

选择发布更新管理系统提供的修改数据集空间范围和重建数据集空间索引菜单,在出现的对话框中选择相应的数据集,确认操作即可。

(8)更新和保存地图及工作空间

选择发布更新管理系统发布地图维护菜单,系统将自动识别新增的数据图层并将其加入发布地图,同时保存发布地图。

5 项目数据库更新问题总结、分析及对策

以上更新流程完成后,检查发现发布地图中存在重复数据。经分析,主要是新旧数据集之间的数据集命名不一致,导致以图幅为单位的数据集更新失败,第一是全角字母I(I)与罗马数字1(Ⅰ)的混用。其次是定长占位命名法与非占位命名之间的不一致。第三是1∶500与1∶1 000数据集的互相替代。由于生产的需要,城市1∶500的基础地形图范围扩大,导致某些区域既有 1∶500地形图元素,也有 1∶1 000地形图元素。以上3种原因都会使更新系统将目标数据集的更新操作判断为新增操作,造成图形元素重复。

处理方法:首先对整个数据库进行整体备份,其次,对于非空间数据操作(不需使用SuperMap SDX+)的场合,使用Oracle SQL Developer或其他的Oracle SQL编辑工具编写Oracle过程或函数:针对数据集错误名称与标准命名的区别,编程依次提取和处理smregister表中的需要修改的数据集中的地形图元素记录,删除图名数据集中的无效元素记录并保存数据集,处理图名表中的图名数据集命名错误。在Oracle客户端或服务端执行函数。最后,使用超图管理工具或项目空间数据库更新管理系统检查数据更新情况,确认修改无误后,修改数据集的空间范围并重建空间索引。

在仅使用Oracle方法处理错误表记录后,浏览项目数据正常,但速度较慢。进一步浏览属性数据表发现已经删除的记录变成了空记录。对数据集进行数据源修复、数据源压缩均无法正常执行且会导致系统崩溃等。通过查询和搜索SuperMap的相关帮助文档,发现SuperMap并没有提供相应的管理接口,修复数据源和紧缩数据源功能仅适用于桌面的SDB数据源,对大型空间数据库数据源如Oracle则无能为力。经仔细研究和比对超图Oracle数据用户下各系统表之间的关联关系,发现smregister是整个超图Oracle数据用户的关键——该表对用户表进行注册登记,说明了用户表的名称、记录数、图层四至、空间范围等注册信息。

总结以上过程,对以上处理方法进行修正——在数据集错误数据处理完成后,加入以下SQL语句更新smregister中对应的数据集记录数:update smregister set smrecordcount=(select count(*)from dest_table)where smtablename=dest_table;其中,dest_table代表要处理的数据集的名称。smtablename记录了注册数据集名称,smrecordcount记录了smtablename所包含的元素记录数;通过试验,经过以上处理后,不论是使用超图的数据管理工具,还是项目数据发布更新管理系统,都可以对数据集进行正常访问及相关处理了。

6 总结

通过本项目的数据更新实践,得出以下几点需要特别注意:①Oracle客户端或服务端处理过程效率极高,处理前需要仔细备份,以便应付随时或可能的数据处理错误。②超图Oracle数据用户空间数据管理的主要操作都以smregister表为出发点,如果使用超图之外的数据更新工具,改变了数据集的记录或其他信息,必须同时更新其对应的smregister注册信息。③对于空间数据集而言,创建空间索引非常重要,据试验结果,建立空间索引比不建空间索引其访问时间效率能够提高一个数量级甚至更多。④通过SuperMap SDX+访问空间数据库,与通过Oracle客户端或服务端直接访问空间数据库,其间的效率差别高达几个数量级。⑤数据安全操作规程极为重要,数据库更新维护时必须本着安全第一的原则,事先做好备份,做到有备无患。⑥数据的规范化不仅体现在数据元素的规范完整,数据集命名规范化同样重要。

[1]许有田,高红心,李军锋等.基于SuperMap IS的西安市空间数据发布系统建设[J].城市勘测,2009(1),28~30

[2]北京超图地理信息技术有限责任公司.SuperMap Objects联机帮助.

[3]张鹏程.城市基础地形图建库方法[J].地理空间信息,2009(4)

[4]魏磊.基于SuperMap IS.NET技术的警用GIS的研究与设计.山东大学,2010硕士论文

[5]段其昌,李施斌,王涛等.基于SuperMap的电力管网GIS系统空间数据处理的研究与应用[J].电网技术,2007(S1)

[6]李爱光,王卉,郭健.无缝GIS的空间数据组织研究[J].测绘工程,2005(01)

[7]李云岭,靳奉祥,季民等.GIS多比例尺空间数据组织体系构建研究[J].地理信息科学,2003(06)

猜你喜欢
空间数据数据源图层
GIS空间数据与地图制图融合技术
Web 大数据系统数据源选择*
巧用混合图层 制作抽象动感森林
基于不同网络数据源的期刊评价研究
元数据驱动的多中心空间数据同步方法研究
跟我学添加真实的光照效果
基于真值发现的冲突数据源质量评价算法
基于文件系统的分布式海量空间数据高效存储与组织研究
国外建筑CAD图层标准发展现状与研究
分布式异构数据源标准化查询设计与实现