基于ArcEngine的数据质量通用检查系统研究

摘要:本系统基于VS2015+ArcGIS Engine10.4平台,采用C#语言开发,实现对数据属性质量的检查,将检查项设置到用户可以编辑添加,实现不同项目都可以用本系统来检查,目前本系统已经用于第三次全国国土调查和贵州省违法占耕项目。

关键词:ArcGIS Engine;数据质量检查,自定义检查项

1引言

对于不同的项目或者空间数据库,数据质量的检查是必须的,而不同的项目要求的数据库质量检查内容又不一致,需要针对不同的项目开发出对应的数据质量检查软件,开发成本和精力耗费巨大,而本系统的研究正解决了这一问题,针对不同的空间数据库,即便检查内容不一致,只要设置好对应的检查项,就可以用于具体的项目。系统主界面如下图所示:

图1 系统主界面

2部分其他界面及功能介绍

图2.1检查项设置

检查功能的实现,核心代码如下所示:

扫描二维码关注公众号,回复: 13215949 查看本文章

CkeckDataFunc(IFeatureLayer culFeatLayer, string strSQL, string strError)

        {

ITable table = culFeatLayer.FeatureClass as ITable;

IQueryFilter pQF = new QueryFilter();

pQF.WhereClause = strSQL;

ICursor cursor = table.Update(pQF, false);

IRow Row = cursor.NextRow();

int fieldCR = Row.Fields.FindField("CheckResult");

int maxCount = table.RowCount(pQF);

for (int i = 0; i < maxCount; i++)

{

string strCheckResult = (string)Row.Value[fieldCR];

Row.Value[fieldCR] = strCheckResult + strError + ";";

cursor.UpdateRow(Row);

Row = cursor.NextRow();

}

Marshal.ReleaseComObject(pQF);

}

读取自定义检查内容并检查核心代码如下:

using (StreamReader sr = new StreamReader(strtxt, Encoding.UTF8))

{

selSQL = sr.ReadToEnd();

string selSQLBJ = selSQL.Split('&')[0];//错误类型

selSQL = selSQL.Split('&')[1];//错误代码

CkeckDataFunc(pSelectFtLayer, selSQL, selSQLBJ);

}

3小结

本系统基于VS2015+ArcGIS Engine10.4平台,采用C#语言开发,实现数据库质量检查项可以自定义检查,只需新建文本并输入相应的检查内容和检查错误描述,系统就会读取该文本去执行检查。

本系统的优势在于针对不同的项目,若需要对空间数据库属性质量检查,只需用户添加相应的检查内容就可以了(内容结构如图3所示)。目前本系统已经用于第三次全国国土调查和贵州省违法占耕项目,极大地节约了检查软件的开发成本,且提高了工作效率,后续还可以用于其他项目。

图3检查内容结构

猜你喜欢

转载自blog.csdn.net/qq_34510277/article/details/118713872
今日推荐