基于ArcEngine的空间数据通用建库软件介绍
最近花了点时间把之前的空间数据入库功能进行了完善,在这里做一个简单的介绍,也希望大家给提点意见和建议,我的目标是做一个好用、易用、通用、稳定的入库程序。
1、软件特点:
- 基于模板(方案)的数据更新
采用配置模板进行更新操作,对于接边、推历史库、图层字段映射等根据客户需要灵活定制。
可配置信息包括:
序号 |
功能名称 |
功能描述 |
备注 |
1 |
基础配置 |
配置现状/历史图层名称命名规则,现状/历史关键字段,宏字段等信息。 |
宏字段是以[]包围的文本,在其它配置文件中可以使用宏字段代替相应的内容。 |
2 |
图层字段映射配置 |
指定源图层和目标图层的对应关系,字段的对应关系;目标数据库不存在对应图层的处理方式;是否仅入库配置图层;目标图层字段不存在的处理方式等信息。 |
将源图层中满足条件的实体入库到指定图层,并根据字段对应关系赋值。 |
3 |
数据归档配置 |
设定是否启用归档模式(数据存储到历史库);哪些图层支持归档;归档类型(待入库数据范围内所有现状数据都归档、待入库数据范围内变化了的数据归档) |
|
4 |
数据变更检查配置 |
配置要素变化检测标准,识别要素是否发生了变化。 |
包括属性和空间两种判断依据。 |
5 |
接边配置 |
配置范围图层名称,需要接边的图层名称,需要接边实体的过滤条件,接边判断条件等信息。 |
|
6 |
审核配置 |
入库时对于入库数据进行审核,包括了图层存在性、非空性、字段存在性、字段类型、字段值非空、字段值赋值规则、字段值与现有数据冲突规则等。 |
- 集成入库审核,提高数据入库门槛
数据入库时根据需要进行数据审核,满足条件的数据才能进行入库。主要包括:
图层存在性、非空性、字段存在性、字段类型、字段值非空、字段值赋值规则、字段值与现有数据冲突规则等
如:控规数据入库时,用地性质必须与总规的用地性质保持一致;
图层中必须包括设计人员字段,且设计人员字段值不能为空;
控规地块的建筑密度必须是0到100且最多2位小数的数值
……
- 基于事务的数据更新
数据更新后,用户可以选择是否保存编辑到数据库,如果发现有错误,可以取消保存,则数据库保持更新前状态。
- 支持C#脚本
数据更新时,如果入库方案的配置无法满足入库要求,可以编写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)完善针对历史版本的各项操作(合并、浏览、输出……)
基于ArcEngine的空间数据通用建库软件介绍的更多相关文章
- ArcGIS农村土地承包经营权辅助建库软件说明书
软件作者:闫磊 电话:18987281928 或13108507190 QQ:853740877,QQ交流群:236352926 1. 软件安装... 4 2. 系统整体界 ...
- arcgis 地理国情建库软件已完成
arcgis 地理国情软件已完成: 1.创建1:25000(或则其他比例尺)国家2000坐标系接合表 2.按照地理国情普查数据库标准,创建标准数据库 3.外业调查工作底图制作 4.矢量和影像数据批量裁 ...
- VMware下安装Linux系统,ORACLE软件,DBCA建库
操作系统安装 在vmware下安装Linux (OEL5.6),用于数据库服务器 1.打开vmware,选择"创建新的虚拟机" 2.选择自定义安装 3.选择虚拟 ...
- 静默方式安装10g数据库软件+升级patch+手工建库
通常我们安装Oracle数据库软件,都是用OUI图形界面来完成的,但有些Unix/Linux系统中并未安装图形系统,也就无法使用图形界面来安装Oracle的产品了,对于这种场景,就只能采用静默方式来安 ...
- 基于EntityFramework 6 Code First实现动态建库,分库,数据库自动迁移
一.前言 公司原本有一个"xx系统",ORM使用EntityFramework,Code First模式.该系统是针对某个客户企业的,现要求该系统支持多个企业使用,但是又不能给每个 ...
- 基于memcached的单机轻量级通用缓存库minicached的实现
一.前言 之前拜读过淘宝子柳的<淘宝技术这十年>之大作,深知缓存技术在系统优化中起着一个举足轻重的作用.无论是文件系统静态文件,数据库的访问,乃至网络数据的请求,只要是与内存访问速度相差较 ...
- 【转】 GRASP(通用职责分配软件模式)模式
转自:http://www.cnblogs.com/sevenyuan/archive/2010/03/05/1678730.html 及:http://blog.csdn.net/lovelion ...
- 介绍n款计算机视觉库/人脸识别开源库/软件
计算机视觉库 OpenCV OpenCV是Intel®开源计算机视觉库.它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. OpenCV 拥有包括 300 多个 ...
- 【转】SVN建库方法
转载地址:http://blog.csdn.net/winonatong/article/details/5791919 SVN全名Subversion,即版本控制系统.SVN与CVS一样,是一个跨平 ...
随机推荐
- 2014第五届蓝桥杯试题C/C++程序设计B组——切面条
题目描述:标题:切面条 一根高筋拉面,中间切一刀,可以得到2根面条. 如果先对折1次,中间切一刀,可以得到3根面条. 如果连续对折2次,中间切一刀,可以得到5根面条. 那么,连续对折10次,中间切一刀 ...
- GridView 鼠标经过时变色两种方法
第一种: 新建一个js文件 并引用 <script src="jquery.js" type="text/javascript"></scri ...
- c#中操作word文档-四、对象模型
转自:http://blog.csdn.net/ruby97/article/details/7406806 Word对象模型 (.Net Perspective) 本文主要针对在Visual St ...
- Silverlight DataGrid标题行居中
1.引用命名空间 xmlns:Primitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Win ...
- css3干货
CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能. 目前主流浏览器chrome.safari.firefox.opera.甚至360都已经支持了CSS3大部分 ...
- 分布式MySQL集群方案的探索与思考
转载:http://www.infoq.com/cn/articles/exploration-of-distributed-mysql-cluster-scheme?utm_campaign=rig ...
- echo -n -e参数详解
echo -n 不换行输出 最终输出 123456 而不是 123 456 echo -e 处理特殊字符 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a 发出 ...
- php抓取post方式提交的页面
function curlBy($url, $data=array()) { $ch = curl_init(); if(!empty($data)){ ...
- 用jquery循环map
前些天记录了java中for循环取map,发现用jquery的each一样可以取map(我称之为js的map,不要较劲),且顺序和map中顺序一致.废话少说,看代码 1 2 3 4 5 6 7 8 9 ...
- mysql开启全文索引功能
注意:全文检索模块需要mysql开启全文索引功能,开启方法:修改mysql配置文件:window服务器为my.ini,linux服务器为my.cnf,在 [mysqld] 后面加入一行“ft_min_ ...