时间:2024-05-22
赵成福
(1.青海省基础地理信息中心,青海 西宁 810000)
空间地理信息数据库具有无缝海量的特征,在数据库更新尤其是矢量数据更新时存在一定的复杂性,如何充分利用ArcGIS平台提供的功能进行空间数据库的更新是一个关键问题。本文结合ArcGIS平台提供的桌面编辑环境、地理处理任务框架和ArcObject应用开发接口介绍了空间数据库矢量数据入库更新的方法。
矢量数据库的基本更新步骤是对原有图层数据进行区域擦除,接着导入数据,最后拼接数据,如图1所示。矢量数据库的更新方法多种多样,下面分别介绍基于ArcGIS平台的桌面编辑环境、地理处理任务框架和Arcobject应用开发接口的3种数据更新方法。
图1 面状矢量数据更新流程图
ArcMap是ArcGIS Desktop三个用户桌面软件之一,是一个复杂的专业制图和编辑系统,可实现地图制图、地图编辑、地图分析等功能。
用ArcMap编辑环境进行空间数据更新的主要步骤为:①加载空间数据库更新图层到ArcMap主窗口;②打开编辑工具条,启动编辑,选择要编辑的面状图层;③在编辑任务中选择Cut Polygon Features(分割多边线要素);④选中要分割的多边形,用编辑工具沿更新区域边界画一条分割线,分割线必须穿过整个分割多边形,完成多边形分割;⑤如果要更新线状对象,首先选中要编辑的线,然后用Split工具点击线的分割点,完成多义线分割;⑥接着用户选择更新区域内的所有图层要素,用删除工具删除;⑦将更新的数据复制粘贴到对应的图层;⑧沿更新区域边界线,用Merge工具依次拼接空间关系相邻、属性相同的要素。
图2是利用ArcMap桌面编辑环境进行面状矢量数据更新的界面,图中显示的是用面分割工具进行面状要素分割。
图2 ArcMap编辑环境下的数据库更新界面
在ArcGIS Desktop中,提供了一个地理处理任务框架,这些地理处理任务都包含在ArcToolbox工具箱中,框架中的工具主要以ArcToolbox基本工具、ModelBuilder模型、命令行以及脚本等4种方式运行。本文主要介绍基于ModelBuilder模型工具的空间数据库更新。
ModelBuilder为设计和实现空间数据处理模型提供了一个图形化的建模框架,它将一系列的工具和数据串起来创建流程化的高级GIS功能。可将工具和数据集拖动到一个模型视图中,然后按照有序的步骤把它们连接起来实现复杂的GIS任务。
用ModelBuilder工具进行空间数据更新的主要步骤为:①用Erase工具擦除指定区域的图层(LAYER),擦除后产生新的图层LAYER_ER;②用Append工具导入更新数据到LAYER_ER图层中;③用Dissolve工具拼接导入到图层LAYER_ER中的数据,拼接后产生新图层LAYER_MG;④用Delete工具删除临时图层LAYER_ER和原始图层LAYER;⑤用ReName工具将拼接好的图层LAYER_MG重命名为图层LAYER。
图3是把这些工具在ModelBuilder中连接起来建立的空间数据处理模型,通过运行该模型工具,可实现空间数据的入库更新。
图3 ModelBuilder数据更新处理模型图
ArcObject是ArcGIS平台的二次开发组件集, 提供了几乎全部的底层GIS功能。ArcGIS平台软件大部分功能都是基于ArcObjects的组件开发出来的。由于这个组件库的API是开放的,因此程序开发人员也可使用ArcObjects灵活地开发自己的GIS应用程序。用ArcObject 应用开发接口进行空间数据更新的主要步骤为:
①用ISpatialFilter接口结合IfeatureClass接口的Search函数,通过空间分析,选择更新区域的要素和相邻要素,用IFeatureEdit接口的Split函数分割更新区域边界上的线和面要素;②用IWorkspace接口的ExecuteSQL删除更新区域内的要素数据;③用IFeatureCursor接口的InsertFeature函数导入更新数据;④用ItopologicalOperator接口的ConstructUnion函数合并更新区域边界上空间关系相邻、属性相同的要素。
图4是利用ArcObject应用开发接口开发的空间数据库管理系统中的矢量数据入库工具,通过该工具可实现高效的矢量数据入库更新。
图4 基于ArcObject的矢量数据入库工具
下面就以上3种更新方法进行比较:
1)基于ArcMap编辑环境的数据更新,适合于单个或少量多个要素的局部更新。
2)基于地理处理任务框架的数据更新,自动化程度高,适合于小数据量的批量更新,更新过程中会产生中间过程数据。由于是整个图层要素参与分析处理,在大数据量(全省)的情况下更新花费时间很长。
3)基于ArcObject应用开发接口的数据更新,采用空间分析方法,只对更新区域及周边要素进行更新,效率高,也不会产生中间过程数据。
表1 几种数据更新方法比较表
从表1可以看出,在相同数据量和更新区域的情况下,Arcobject应用开发接口的更新效率最高。
[1]吴静,何必,李海涛. ArcGIS 9.3 Desktop地理信息系统应用教程[M].北京:清华大学出版社,2011
[2]汤国安,杨昕. ArcGIS地理信息系统空间分析实验教程[M].北京:科学出版社,2010
[3]邢超,李斌. ArcGIS学习指南——ArcToolbox[M].北京:科学出版社,2010
[4]韩鹏,徐占华,褚海峰,等.地理信息系统开发ArcObjects方法[M].武汉:武汉大学,2005
[5]ESRI.Developer Help For ArcGIS v9.3[CP/DK].USA:ESRI,2009
[6]ESRI.ArcGIS Engine Developer Guide[M/CD].USA:ESRI,2009
[7]ESRI.Exploring ArcObjects[M/CD].USA:ESRI,2009
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!