测绘数字化产品质量检查记录工具的研究与应用
2016-10-19赵成福
赵成福
[摘 要]本文在测绘数字化产品检查流程和过程的基础上,基于ArcGIS插件技术设计了一个辅助人工检查信息记录的工具,实现了人工检查记录信息的标准化记录和交换共享,具有一定的参考价值。
[关键词]质量检查;检查记录;ArcGIS插件;报表
doi:10.3969/j.issn.1673 - 0194.2016.06.112
[中图分类号]P208 [文献标识码]A [文章编号]1673-0194(2016)06-0-03
0 引 言
在测绘数字化产品质量检查当中,可以采用软件自动分析和判断的计算机自动检查、人机交互的计算机辅助检查和人工检查等几种方式。自动检查和人机交互检查可以通过编写专业的检查软件实现。但是现在的测绘数字化产品趋于多源化,包括不同的数据格式和不同的空间坐标系等。一个专业数据质量检查软件一般是针对某个项目或数据内容设计相应的检查方案和输出检查成果,兼容所有检查数据源具有较大的难度。同时,专业软件在自动检查的过程中由于智能化水平的限制,目前还会产生大量人工排查的疑似质量错误。因此,人工检查也是目前测绘数字产品质量把关不可缺少的部分。人工检查虽然可以检查软件无法判断的质量错误,但是检查效率不高。在人工记录检查记录的过程中,存在多种检查结果格式和检查项命名的问题,为质量检查数据的交换、共享和使用带来了一定难度。
目前青海省测绘地理信息局主要采用ArcGIS平台软件进行数据的生产、加工和使用。ArcGIS是美国环境系统研究所(ESRI)公司开发的地理信息平台级产品,对目前主流的矢量和栅格数据都支持。本文结合测绘数字产品质量检查的流程与方法,基于ArcGIS插件技术设计了一个既符合数据检查流程又简单通用的辅助人工实现数据质量检查信息记录的工具。
1 测绘数字化产品数据检查过程分析
1.1 检查流程
本文中的质检记录工具结合青海省测绘地理信息局的质量业务流程进行设计,数据需要经过三级检查,包括部门一级检查、中心或院级二级检查、省质检站三级检查。
1.2 检查过程
质量检查过程包括提交检查数据、接收检查数据、检查数据质量,合格后提交下一级检查,不合格数据返回数据修改部门。以上检查过程在3个质检部门均要进行,整个检查过程中的检查信息需要以图形标记结合属性信息的方式记录,并按检查报表格式反馈给数据作业员。
2 ArcGIS插件开发技术解析
2.1 简介
ArcGIS 10版本引入了桌面插件模型(Add-in),Add-in插件能够很方便地在用户之间共享,因为它们既不需要安装程序,也不需要组件模型(COM)注册, 使用户更容易定制和擴展ArcGIS桌面应用。Add-in插件支持的对象类型包括按钮和工具、组合框、多项目、可停靠窗口、编辑器扩展、服务对象扩展、工具栏、工具盘、菜单和上下文菜单等。Add-ins插件可以基于C#、Java、Python的语言开发。
2.2 开发方法
本文利用Visual Studio 2010集成开发环境中C#语言,通过ArcObjects组件集的开发工具包(SDK)提供的Add-in向导开发插件扩展应用程序。
首先,使用VisualStudio的新建工程向导,选择ESRI提供的ArcGIS Add-in的ArcMap应用插件模板,通过向导选择第一个或多个添加到Add-in里的对象类型,本文主要用到Button、Editor-Extension两个扩展对象。为扩展对象填写包括类名称、标题、工具分类、气泡提示、功能描述和帮助文件等信息,点击Finish完成扩展插件的工程创建。
其次,在按照相应的类编写功能实现自定义对象的逻辑时,有一个和工程相对应的ArcGIS Desktop程序对象,该内置程序对象是ArcMap的静态类,该静态类包含一些静态对象,如Application、Document、Events,通过这些对象就很容易在代码里获得包含Add-in的地图文档实例,继而获得类似Map这些核心编程对象。
2.3 Add-in安装部署
Add-in的部署也十分简单,可以把编译好的Add-in文件复制到需要部署的安装了ArcGIS Desktop的机器上。然后通过ArcGIS Desktop应用程序的Add-in Manager来安装Add-in插件,也可以通过它来卸载。安装插件不需要重启ArcGIS Desktop应用程序。
3 工具设计
本文中的工具设计将从需求分析、功能模块设计、数据库表设计和代码实现的几个关键方面展开。
3.1 需求分析
根据实际的业务需求调查,用户要求基于ArcGIS桌面版环境,开发一个易于部署和使用,能对多源数据进行检查信息记录,以图形交互的方式添加、修改、删除质量检查图形和属性记录,并且能按照规定的模板格式输出检查记录报表的功能软件。软件操作流程和具体功能包括:①创建检查记录数据库;②添加和修改基本检查信息;③添加检查数据源开始人工检查;④交互式添加和修改检查记录图形和信息;⑤输出标准格式检查记录报表。
3.2 功能模块设计
根据需求分析,将质量检查记录工具分为检查记录数据库创建、基本记录信息修改、检查记录添加、检查记录修改及检查记录输出5个模块。①检查记录数据库创建模块实现了File GeoDataBase数据库、检查记录要素层、基本信息记录表的自动创建功能;②基本信息修改模块实现了基本检查信息(项目名称、区域范围、检查内容、作业员、检查者、检查日期、复查者、复查日期)的修改功能;③检查记录添加模块实现了检查记录信息(检查内容、处理意见、缺陷情况、缺陷子情况、修改情况)的添加功能;④检查记录修改模块实现了检查记录信息的修改功能;⑤检查记录输出模块实现了检查记录报表输出功能。
3.3 数据库设计
质量检查记录数据库以ArcGIS File GeoDataBase格式建立,内部包括检查图形标记层和基础检查信息记录表。
基础检查信息表记录了项目名称、检查范围名称、检查内容、检查类型、作业员、检查员、检查日期、复查员和复查日期等信息。
检查记录要素层记录了要素具体的错误位置,属性包括错误记录ID、检查内容、处理意见、缺陷情况、缺陷子情况、缺陷类型和修改情况等信息。
3.4 关键代码
ArcGIS 插件技术中的编辑器扩展Editor-Extensions允许开发人员通过该编辑扩展接口来自定义编辑工作流程和自定义编辑会话的功能。本文利用编辑器扩展接口实现如下功能:当用户开始编辑时,用绘制要素工具绘制要素后,自动弹出检查记录添加对话框,用户填写相关检查信息后,点击确定完成一条检查记录的交互添加。以下是交互添加要素时显示记录添加对话框的关键代码。
public class EditorExtension : ESRI.ArcGIS.Desktop.AddIns.Extension //继承Extension类
{
……//此处其他代码省略
protected override void OnStartup()//重写基类OnStartup方法
{
//开始编辑事件委托
Events.OnStartEditing += newIEditEvents_OnStartEditingEventHandler(Events_OnStartEditing);
//停止编辑事件委托
Events.OnStopEditing += new IEditEvents_OnStopEditingEventHandler(Events_OnStopEditing);
}
//開始编辑事件
private void Events_OnStartEditing()
{
//添加创建要素事件委托
Events.OnCreateFeature += new IEditEvents_OnCreateFeatureEventHandler(Events_OnCreateFeature);
}
//停止编辑事件
Privatevoid Events_OnStopEditing(bool Save)
{
if (ArcMap.Editor.EditWorkspace.Type != esriWorkspaceType.esriFileSystemWorkspace)
{
//解除创建要素事件委托
Events.OnCreateFeature -= new IEditEvents_OnCreateFeatureEventHandler(Events_OnCreateFeature);
}
}
//要素创建事件
Privatevoid Events_OnCreateFeature(ESRI.ArcGIS.Geodatabase.IObjectpEditObject)
{
IFeaturepFeature = (IFeature)pEditObject;
if (pFeature.Class is IValidation)
{
IValidate pValidate = (IValidate)pFeature;
string strErrorMessage = string.Empty;
boolbIsvalid = pValidate.Validate(out strErrorMessage);
if (!bIsvalid)
{
MessageBox.Show("无效的要素\n\n" + strErrorMessage);
}
else //如果添加的要素有效,弹出窗体,添加的要素传递给窗体类
{
DataCheckFillInfoFormpDataCheckFillInfoForm = new DataCheckFillInfoForm(ref pFeature);
pDataCheckFillInfoForm.ShowDialog();
pDataCheckFillInfoForm = null;
}
}
}
……//此处其他代码省略
}
3.5 工具应用
ArcGIS插件主要应用在青海省测绘地理信息局下属各部门的数据质量检查工作中,以下是质量检查记录工具的界面,如图1所示,该工具基于ArcGIS10.1+Visual Studio 2010开发。
4 结 语
基于ArcGIS插件技术质量检查记录工具的开发,实现了多源数据检查结果的记录和各级检查部门检查数据以标准化的共享交换。本工具在青海省测绘地理信息局各业务部门的实际工作中得到了应用,是笔者从事相关工作经验的总结,具有一定的参考价值。
主要参考文献
[1]国家测绘局测绘标准化研究所.数字测绘产品检查验收和质量评定(GB/T 18316-2001)[S].2001.
[2]国家测绘产品质量监督检验测试中心.测绘成果质量检查与验收(GB/T 24356-2009)[S].2009.
[3]牟乃夏.ArcGIS Engine地理信息系统开发教程——基于C#.NET[M].北京:科学出版社,2015.
[4]李崇贵.ArcGIS Engine组件式开发及应用[M].北京:科学出版社,2012.
[5]张丰,杜震洪,刘仁义.GIS程序设计教程?——基于ArcGIS Engine的C#开发实例[M].杭州:浙江大学出版社,2012.
[6]陈於立,李少华,史斌,等.ArcGIS开发权威指南[M].北京:电子工业出版社,2015.