APP下载

多图幅多图层的地图自动接边设计与实现

2010-03-22程丽萍左小清

城市勘测 2010年4期
关键词:图幅端点图层

程丽萍,左小清

(昆明市测绘研究院,云南昆明 650051)

1 引 言

地图按图幅分幅数字化、保存,这使本来连续的实体被分离到不同的存储空间和存储单元中去,这种地理空间的分离存储导致了数据的物理缝隙,这也导致逻辑上本身连续的信息不能以逻辑连续的方式呈现,例如跨越多幅图的一条河流,在图幅内查询河流属性(例如长度)时只能获取其在本图幅内的相关信息而不是实体整体的信息。GIS用户常常需求地理实体的连续完整信息,同时地图接边也是数据入库和出图前的重要环节,其方便性和智能性制约着数据入库和发布的质量和效率。这就需要进行地图接边,使被图幅割裂的地理实体在物理和逻辑上实现无缝连接。

2 地图接边现状

国内外知名的GIS软件厂商推出的GIS软件大多数都带有地图接边功能,如ArcGIS、MapGIS、AutoCAD Map 2000。它们对地图接边的解决方法不尽相同,但都实现了一定程度的自动化,提高了地图接边的效率和精度,改善了传统由手工进行接边的效率低下,精度难以保证的状况。但这些软件也都有各自的不足,如多数在整个接边过程中只允许两幅图同时接边,致使多幅图接边时操作烦琐,效率较低;多个图层接边时还需要操作多次;面自动接边功能薄弱等。因此,高效地、简单化、自动化、智能化实现地图接边的需求仍然存在。

3 地图自动接边组件的具体设计与实现

3.1 地图数据库中矢量数据的组织

采用ESRI公司的Geodatabase数据模型,对数据库中的矢量数据进行了如图 1的组织。其中的图幅索引层是由各个矢量图幅的内图廓面组成,包含有对应的图幅号等属性信息。

图1 矢量数据的组织

3.2 多图幅多图层自动接边组件算法设计

先要对数据进行试验以获取合适的容限距图幅间线接边:

(1)根据地图库索引图,获得数据已经存在于数据库中的图幅号。

(2)对需要进行接边的图幅,只需选择其图幅号,可以多选。这种选择接边图幅的方法,可以避免把图幅数据加载入当前地图界面,从而避免了大量数据加载时占用内存太多,影响系统显示及操作速度。而接边操作却是直接对库中数据进行,从而直接修改了原数据库。

(3)对选中的多个要接边图幅号,取出一个,判断其右图幅和下图幅是否也参与此次接边,据此创建出公共接边线。

(4)对公共接边线以容限距创建缓冲,选出被该缓冲涉及的当前层所有要素作为参与接边要素。

(5)在参与接边要素范围内,根据当前图层的属性约束字段,把属性相同的要素归为一类,由此参与接边要素被分为若干类。

(6)对同类要素进行接边:对其中端点间距离小于容限距的要素进行咬合合并(距离为 0时则直接合并)。有多个匹配要素的,只取一个。如此循环接完该类中所有要素。(需注意的是:由于原图质量问题,使得未接边前本应是端点对端点的要素,出现一要素端点对另一要素正数或倒数第二个结点的情况,在算法中也考虑了此类情况,使得接边后要素是首尾相接,而避免了出现分叉情况。)

(7)同样方法,循环接完所有类。当前层接边结束。

(8)同样方法,依次循环对其他待接边层接边。

(9)所有层接完后,同样方法,开始下一幅图,直到所有选中图幅接边完成。

图幅间面接边:算法基本同线接边。不同处是同类要素之间只要最小距离小于容限距就可作为匹配要素,一个要素可以有多个匹配要素。找到的匹配要素只合并,不咬合。

3.3 编程实现

由于VB的开发快速功能强大,采用VB 6.0为开发工具,综合组件实现的相关理论,基于 AO组件集,结合SDE进行地图自动接边部件的开发。

线接边程序流程如图2所示,面接边流程类似线接边,不同处是对匹配的相邻边操作。

图2 线接边程序流程图

图3 组件界面

该组件经过客户程序调用,只需操作一次,就可以自动对选中的多个图幅,多个图层根据距离和属性约束条件进行接边,大大减少了多余操作。组件调用后的使用界面如图 3所示。

3.4 编写代码中需注意的问题

(1)AO组件集能很好地满足GIS方面绝大部分的开发任务,而某些图层数据属较少见特殊情况,所以应用AO时有时会涉及目前版本中的某些漏洞(bug)而导致程序错误;另如SDE 9.0,当选择集中要素个数超过SDE客户端规定的缺省个数时,则任务在服务器端执行,多次时就会产生LOGFile错误。在代码编写中就需要考虑如何绕开这些漏洞而又较好地实施接边算法。

(2)根据实际接边图幅数据质量状况,确定多大的接边容限距能较好地满足地图接边要求。容限距过大,则会产生错接。容限距过小,又会产生漏接。

(3)多个图层接边时,执行效率问题。当为完成某一具体功能而查找可用接口时,应尽可能从执行效率等角度考虑,选择能更高效完成该部分代码的接口。如同样要删除一个要素类中若干要素,若要素个数很多,则将其放入集合中删除,可能比常规用的依次删除效率高很多。

用其进行地图自动接边的实际效果如图4所示。

图4 边界处线、面接边前后对比

4 结 语

本文结合地图接边的相关理论,在充分吸取前人研究成果基础上,研究了距离和属性相结合的地图多图幅多图层自动接边方法,以实现图幅接边的简单化、自动化和智能化。并基于AO组件集,采用COM技术编写了该组件。试验结果表明:

(1)该组件可以较好地提高地图接边的效率和精度,能基本满足实际生产需求。

(2)基于AO和SDE进行GIS组件的开发是高效易行的。

[1] 程丽萍.云南省基础地理信息平台建设的部分关键理论与技术[D].昆明理工大学国土资源学院,2007

[2] 许耿.地图学(修订本).东北师范大学出版社[M],1998

[3] 毛曦,李均力.用COM组件技术实现数字地图的自动接边[J].计算机时报,2004(6):29~31

[4] 韩鹏,徐占华,褚海峰等.地理信息系统开发—ArcOb jects方法[M].武汉大学出版社,2005

[5] 潘爱民.COM原理与应用[M].清华大学出版社,1999

[6] 赵江洪.地理信息系统中多图幅接边的设计与实现[J].测绘科学,2004.2

[7] 邓小军,郑小梅.基于AO的分幅等高线智能化接边处理方法的研究[J].四川测绘,2004.6

猜你喜欢

图幅端点图层
非特征端点条件下PM函数的迭代根
不等式求解过程中端点的确定
巧用混合图层 制作抽象动感森林
基丁能虽匹配延拓法LMD端点效应处理
图层法在地理区域图读图中的应用
基于EXCEL的地形图图幅号转换查询方法
跟我学添加真实的光照效果
基于ArcMap的图幅接合表快速生成方法研究
地形图图幅编号规则及实现
基于Bing Maps的地形图图幅编号的网络可视化查询