最近花了点时间把之前的空间数据入库功能进行了完善,在这里做一个简单的介绍,也希望大家给提点意见和建议,我的目标是做一个好用、易用、通用、稳定的入库程序。
1、软件特点:
采用配置模板进行更新操作,对于接边、推历史库、图层字段映射等根据客户需要灵活定制。
可配置信息包括:
序号 |
功能名称 |
功能描述 |
备注 |
1 |
基础配置 |
配置现状/历史图层名称命名规则,现状/历史关键字段,宏字段等信息。 |
宏字段是以[]包围的文本,在其它配置文件中可以使用宏字段代替相应的内容。 |
2 |
图层字段映射配置 |
指定源图层和目标图层的对应关系,字段的对应关系;目标数据库不存在对应图层的处理方式;是否仅入库配置图层;目标图层字段不存在的处理方式等信息。 |
将源图层中满足条件的实体入库到指定图层,并根据字段对应关系赋值。 |
3 |
数据归档配置 |
设定是否启用归档模式(数据存储到历史库);哪些图层支持归档;归档类型(待入库数据范围内所有现状数据都归档、待入库数据范围内变化了的数据归档) |
|
4 |
数据变更检查配置 |
配置要素变化检测标准,识别要素是否发生了变化。 |
包括属性和空间两种判断依据。 |
5 |
接边配置 |
配置范围图层名称,需要接边的图层名称,需要接边实体的过滤条件,接边判断条件等信息。 |
|
6 |
审核配置 |
入库时对于入库数据进行审核,包括了图层存在性、非空性、字段存在性、字段类型、字段值非空、字段值赋值规则、字段值与现有数据冲突规则等。 |
数据入库时根据需要进行数据审核,满足条件的数据才能进行入库。主要包括:
图层存在性、非空性、字段存在性、字段类型、字段值非空、字段值赋值规则、字段值与现有数据冲突规则等
如:控规数据入库时,用地性质必须与总规的用地性质保持一致;
图层中必须包括设计人员字段,且设计人员字段值不能为空;
控规地块的建筑密度必须是0到100且最多2位小数的数值
……
数据更新后,用户可以选择是否保存编辑到数据库,如果发现有错误,可以取消保存,则数据库保持更新前状态。
数据更新时,如果入库方案的配置无法满足入库要求,可以编写C#脚本辅助执行特定的操作。
根据数据更新时间,自动维护数据版本,便于数据比对与回溯。
待入库数据如果与SDE中图层的坐标系统不一致,系统自动修改待入库数据坐标系统,使其与目标库中保持一致;
待入库数据如果存在面积为负数的情况,系统自动纠正。
对需要接边的数据进行接边处理,如:道路中心线、河道蓝线等。
快速导入模式适用于初始建库;更新模式适用于在已有数据基础上的数据变更。
输出详细的提示信息,便于用户及时掌握数据更新状态。
2、适用行业:
已经在如下类型项目中得以应用,希望有机会参与其它行业的空间数据建库项目。
3、界面截图:
1)建库效果
2)入库方案编辑
3)入库方案编辑(编辑脚本)
4)入库方案编辑(性能优化)
4、场景描述
1)A国土局之前没有进行过地形图建库,现在需要建立SDE库,希望快速把本地文件(mdb文件、SHP文件)导入到SDE中,并且由于数据仅限于以底图的方式浏览察看使用,对于浏览察看的效率要求较高;存储空间一般,不需要保留历史库。
分析:
由于之前没有进行建库,适用入库程序的快速导入模式,可以将数据批量导入到SDE中。由于数据仅限于浏览察看,且调图性能要求较高,建议按照点、线、面、注记的方式简单分层,以图幅为单位建库,并对建库后的SDE图层执行Group操作,以提高调图速度。
解决方案:
A)采用快速导入模式;
B)入库性能优化中选择“快速导入使用Load方式”
C)取消归档、取消接边
D)启用SDE分组,并设置按照图幅号分组
2)B规划局进行规划数据建库,将控规按照规划单元进行划分,将设计好的数据转换成SHP文件,进行建库,要求道路中心线要接边,控规单位内原有的数据不论是否变化要全部推入历史库,能够查询到历史控规数据。
解决方案:
A)将控规单元定义为更新范围
B)建立现状和历史SDE图层
C)接边配置中添加道路中心线
D)启动归档,并且将需要归档的图层设置为数据全部归档
E)由于同一条道路在接边时可能跨了两个不同的规划单元,道路上如果有所属规划单元属性字段,在变更配置中,将道路中心线的所属规划单元字段设置为不做检查
4、后续工作
1)定义CAD->GIS对应关系,直接将DWG数据分类、提取、转换、入库,无需进行额外的数据转换操作。
2)完善针对历史版本的各项操作(合并、浏览、输出……)