基于ArcGIS的图幅自动接边方法的实现*
2014-05-22欧美极周江刚
欧美极,周江刚,周 艳
(安徽理工大学测绘学院,安徽淮南 232001)
0 引言
随着信息化时代的不断推进和发展,地理信息系统(GIS)在各行业中的运用日趋广泛,而各式各样的GIS应用都是建立在地理空间数据基础上的。为方便数据处理和存储,地理空间数据通常是分幅采集和存储的,这样就使得现实世界中本该为一个整体的地物目标被图幅边界分割为多个对象。此外,由于数据处理过程中的容差或处理过程的不一致,导致本该吻合的目标地物可能会在图幅边缘产生空间错位,从而影响了空间数据的质量,影响数据的查询、分析和应用。因此,研究快速无缝拼接技术方法对于基础地理数据的生产和应用具有重要现实意义[1]。
当前,主要还是依靠人工进行多图幅手动拼接,这种方式不仅工作量大而且容易出错。为了解决此问题,本文以安徽省基础数据为例,将ArcGIS Engine和Microsoft Visual Studio 2010相结合最终实现了批量数据的自动线拼接。
1 图幅线要素接边存在问题的提出
数据的分幅采集和存储造成原本完整的地物目标出错,如图1所示,同一地物跨越两个相邻图幅,实际操作中可能出现更加复杂的拼接偏差。图幅A、B中各有一线状地理要素,它们是同一地物目标的不同组成部分,具有相同的属性特征[2]。数据精确时,这两个线状要素拼接吻合,而由于误差的存在,很难做到完全拼接。这时就需要采取一定方法使其拼接完全,形成完整的地理要素。
图1 数据误差造成的接边问题Fig.1 Edge matching problem caused by data errors
2 接边关键问题
2.1 接边原则
同线型、同图层优先原则和精度优先原则。数字地图都是按分类编码分层存储的,同一图形元素在相邻的两幅图中应放在同一图层,具有相同的线型,所以自动接边时必须遵循这一原则[4]。
2.2 属性变化
接边处理必定会使地物地貌的属性发生变化,面积、长度等自动相加后,保留累加值,删除原来的面积。为更好地表现这些变化,可考虑增加属性字段,将接边前后发生改变的属性进行标注[5]。其他属性因为是一样的,保留一个即可,只是图幅不能拼接时会出现两个相同属性[5]。
2.3 误差处理
数据误差不仅来源于外业数据采集,数字化本身也会带来误差,从而使本该拼接在一起的地物、地貌特征线拼接后出现偏差。当相邻图幅在接边时的对应要素间距离小于0.3 mm时,可以不考虑误差影响,直接进行接边;当距离在0.3~0.6 mm时,两要素各自移动1/2距离;当距离大于0.6 mm时,则按一般制图原则进行接边,并作记录[5]。
3 技术流程及程序实现
3.1 无缝拼接总体流程
线要素无缝拼接总体流程,如图2所示。拼接过程中,根据距离和属性字段两个条件来判断两个要素是否要拼接。距离条件是指两个线要素之间的最短距离是否小于给定的阈值,属性条件是指两个线要素的某些属性特征是否相同,如果两个线要素之间的最短距离小于给定的阈值并且指定的属性特征值相同则认为这两个线要素是同一地物[6]。本文在进行无缝拼接时先进行距离判断,按照既定的阈值(0.000 02)生成合适的选择集,再对选择集内的线要素进行属性特征的判定。
图2 线要素拼接总体流程图Fig.2 The overall flow chart of line feature edge matching
3.2 编程实现
ArcGIS Engine是ESRI公司推出的一个用于定制应用的完整的嵌入式GIS组件库[2]。开发者可以利用ArcGIS Engine集成GIS功能,避免考虑底层的空间算法,进而降低难度,提高效率。ArcGIS Engine支持多种主流开发语言,如Microsoft Visual Studio,Java 等,为开发者提供了便利[3]。
根据以上流程分析,具体实现代码如下:
4 应用实例
为检测程序的有效性,本文以安徽省1∶25万基础地理数据为例,进行测试。安徽省基础数据库是安徽省空间数据基础设施的重要组成部分,为经济信息提供数字化空间平台,为安徽省级各技术交流部门进行区域规划、灾害监测、防洪抢险、环境保护、宏观决策等提供基础地理信息服务。地形数据库以矢量方式存储管理境界、水系、交通、居民地、地貌等地物要素[7]。由于地形数据分幅处理过程中的容差或数据存储、转换精度等原因,造成部分相邻图幅之间存在缝隙,使得同一地物在图幅边缘两侧存在几何位置偏差。具体操作为:首先启动ArcMap批量添加字段(见图3),再遍历图括线进行要素合并(见图4),最后完成图幅的自动拼接(见图5)。
图3 批量添加字段Fig.3 The added fields in batches
图4 合并要素Fig.4 The combined elements
图5 图幅自动拼接前后示意图Fig.5 Comparison before and after automatic edge matching of map sheet
5 结束语
本文针对安徽省1∶25万地形数据库中地理实体分幅存储、图幅间存在缝隙的问题,研究并实现了线要素的自动拼接。由实例对比可见该方法较好地解决了地理实体在相邻图幅中的不连续问题。但是,由于数据精度及图幅变形等因素,后期还需要进行大量的数据检查工作,因此还需进一步深入研究新的方法,以便更好地实现海量数据库中线要素的自动拼接。
[1]杨爱,王发良,朱秀丽,等.一种基于实体匹配的面要素无缝拼接方法及精度分析[J].地理信息世界,2012(3):68-72.
[2]刘庆元,周容.一种基于ArcGIS Engine的线状图幅接边方法[J].计算机时代,2008(2):4-6.
[3]刘仁义,刘南.ArcGIS开发宝典[M].北京:科学出版社,2006.
[4]张振利,孙建华.数字地图自动接边实现[J].北京测绘,2008(2):27-31.
[5]王永哲,金永宝.基于ArcGIS Engine9.2的图幅自动接边算法的实现[J].安徽农业科学,2008,36(34):15 263 -15 265.
[6]朱欣焰,张建超,李德仁,等.无缝空间数据库的概念、实现与问题研究[J].武汉大学学报:信息科学版,2002,27(4):382 -383.
[7]国家基础地理信息中心.1∶25万数据库数据说明[EB/OL].http://wenku.baidu.com/view/95d8e0da5022aaea998f0f6b.html?re=view,1999 -06,2014 -08 -30.