资源描述:
1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 第32卷 第3期 2009年6月 测绘与空间地理信息 GEOMATICS 自动区合并功能可以应用到和地图矢量化相关的 很多工作中,由于它可以实现图幅的自动接边处理,大大地减少了数据汇总时图幅接边时的工作量。本文实现 了自动区合并功能,同时在算法方面做出了最优化处理方面的研究,并探索出一种较简便的解决问题的方法。 关键词自动区合并;MapGIS SDK;MapGIS二次开发; _UnionRegAtoB 中图分类号 P208 文献标识码B 文章编号 1672 - 58672009 03 - 0140 - 04 The Research and I mplementation of Automatic Region Union Based on MapGIS SDK RAO Si - qiang, YANGMin - hua,L IWei,LU Bo School of I nfo - physics and Geomatics Engineering, Central South Un iversity, Changsha 410083, Chi na Abstract TheMapGIS provides the function of Region Union, but it can’t do it automatically . The function ofAutomatic Region Union can greatly simplify thework of edgematchingwith twomaps and apply tomany different fields . Thispaper notonlymakes the function come true, but also makes great efforts to optimize the arithmetic and seek a new way to resolve the problem. Key wordsAutomatic Region Union;MapGIS SDK; secondary developing ofMapGIS; _UnionRegAtoB 0 引 言 在地籍建库、 规划修编或地图矢量化过程中,一幅大 的地图往往要切割成若干幅子图,然后分配给不同的人 员进行处理。如在进行全国第二次土地调查时,由于一 个市、 县、 区的数据量十分庞大,并且数据是按标准分幅 图框分幅后由不同的人员进行修改的,于是数据汇总时 便涉及两幅甚至更多图幅的接边问题。 MapGIS自身提供了“ 合并区 ” 功能,其主要有两种使 用方式第一种方式是,首先选择待保留的一个区,再点 击与之相邻区,这样后者便被合并到先选择的区中。然 而,这种方法在使用的过程中有它明显的局限性,即一次 只能合并两个图斑。第二种方式是,首先根据条件选择 待合并的一系列区 [1] ,然后再进行合并,通过这种方式虽 然一次可以合并两个以上的区,但条件选择区功能过于 局限,根本不能满足自动区合并时涉及的复杂条件。 正是由于MapGIS目前的功能所限,传统的方法是沿 着边界逐图斑手工合并,如果这一过程能实现自动化处 理,则可以大大节省人力物力。本文提出了两种解决此 问题的方法 ⋯⋯ 1原理分析 1. 1MapGIS数据组织结构 目前,MAPGIS二次开发库主要以API函数、MFC类 库、ActiveX控件三种方式提供 [2] 。开发库被封装于若干 动态链接库DLL中。API函数在使用方法上与W indows 的API函数完全一样,因此是独立于开发工具的,无论使 用VC ,VB还是BC ,Dephi⋯,都可以很方便地调 用这些二次开发函数。MAPGIS类库是为基于MFC Mi2 crosoft Foundation Class的开发者提供的多个可重用基 类,将应用程序所需的常见基本功能作了封装。ActiveX 控件是MAPGIS完成组件化改造的成果之一,它们基于 COM 模型。上述各类开发接口提供了从最基本数据 单元的读取、 保存、 更新和维护到MAPGIS地图库的建立 和漫游,以及空间分析,图像处理等一系列功能。其中, API函数是基础,使用上最灵活。所以本文是基于Map2 GIS SDK,采用API二次开发函数来研究与实现自动区合 并功能。 MAPGIS数据管理的核心就是对工作区的操作。工 作区是MAPGIS提出的一个概念,简单地说,工作区就是 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 一个数据池,存放实体的空间数据、 拓扑数据、 图形数据 和属性数据,每个工作区都对应于一个MAPGIS数据文 件。MAPGIS开发函数库提供对工作区实施操作的一系 列函数,如将工作区中的内容存盘,从盘上将数据装入工 作区,对工作区中内容进行添加、 修改、 删除、 检索,等 等 [3] 。对硬盘数据的存取及虚拟内存的管理等复杂繁琐 的工作无需应用程序的编写者去关心,而是由MAPGIS工 作区管理模块自动完成 [4] 。 MAPGIS将工作区分为点、 线、 区、 网、 表五种类型 [5] , 它们的差别主要表现在其中包含的空间实体的类型不 同,空间实体是MAPGIS数据操作的基本单位,在一个工 作区中,一类实体可有多达2 G的个体,每个个体都有唯 一的序号,称为实体号点号、 线号、 区号、 网号、 记录号 等。对实体数据的存取主要依据实体号。每个实体在 工作区中都存储有对应的空间数据、 拓扑数据、 图形参数 及属性记录 [6] 。 通俗来讲MapGIS以点、 线、 区文件的方式来组织数 据,其中线由系列点组成,区由闭合的弧段构成,而弧段 借用线的拓扑结构。线及弧段实体拓扑结构如下 typedef structL I N_TOPstruct { longstNod; 起始结点 longendNod;终止结点 longlPoly;弧段左多边形,网段所属网号 longrPoly;弧段右多边形,对于网络数据, rPoly无效,设为0 float l Weigh;左权 float r Weigh;右权 }L I N_TOP; 自动区合并时,通过弧段的起始结点及左右多边形 号可以用于公共弧段的判别。 MapGIS SDK提供一系列的工作区与区实体数据存 取函数,数据载入工作区后,API区域合并函数原型如下 short _UnionRegAtoB short ai, long ra, long rb, short delCom2 mArc 0 参数入口ai-工作区号 ra-区域ra rb-区域rb delCommArc -是否删除公共弧段 出口无 返回值1/0-成功/失败 该函数首先寻找ra和rb区域的公共弧段,然后根据 公共弧段合并两个区,合并后的区属性以rb为准,并删除 ra号区,若delCommArc 1,则还删除公共弧段。若ra和 rb之间没有公共弧段,则该函数不执行任何合并操作。 1. 2 自动区合并分析 1. 2. 1区拓扑分析 基于MapGIS提供的数据结构和API操作函数,自动 区合并实现的主要步骤有 1 载入数据到工作区; 2 根据区合并条件找到待合并的区域; 3 获取区域的公共弧段; 4 利用_UnionRegAtoB合并区。 在已经取得待合并图斑的基础上,由_UnionRegAtoB 完成区域的合并,而它合并的前提条件是找到待合并区 的公共弧段,而研究发现,相邻区公共弧段位置关系相当 复杂,存在着以下多种可能 第一种情况公共弧段a, b恰好由同一条弧段构成, 如图1所示。 图1 第一种情况 Fig. 1 The first kind of condition 第二种情况公共位置弧段为重叠在一起的两条弧 段构成,公共弧段刚好完全重叠,即两弧段首或尾结点位 置也刚好重合,弧段有可能同向或反向,如图2所示。 图2 第二种情况 Fig. 2 The second ki nd of condition 第三种情况公共位置弧段不是由完全重叠在一起 的两条弧段构成的,即两弧段交差,也有弧段同向或反向 的两种可能,如图3所示。 图3 第三种情况 Fig. 3 The third ki nd of condition 141第3期饶四强等基于MapGIS SDK自动区合并的研究与实现 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 第四种情况公共位置弧段不是由完全重叠在一起 的两条弧段构成,其中一条弧段包含另一条弧段,同时也 要考虑弧段的方向,如图4所示。 图4 第四种情况 Fig. 4 The fourth kind of condition 第五种情况公共位置弧段由两条弧段组成,如图5 所示。 图5 第五种情况 Fig. 5 The fifth kind of condition 其他公共位置弧段有两条及两条以上弧段,且单独的每 段都重复出现以上前四种情况的可能性,如图6所示。 图6 其他 Fig. 6 The others 因此,除了第一、 五种情况满足_UnionRegAtoB合并 区的条件外,其他情况由于不能直接获取所需的公共弧 段,均无法进行合并操作。 1. 2. 2MapGIS造区分析 MapGIS区文件生成方式主要有两种方式,一种是由 线文件通过拓扑检查后,拓扑重建而来;另一种方式是由 两个或和多个已有的区文件合并而成。前者由于所有线 通过了拓扑处理,则组成区文件的弧段拓扑不会出现不 满足合并条件的复杂情况。后者由于在两个文件合并 时,MapGIS均保留了单个文件的完整拓扑结构,在多条弧 段重叠时,它不做任何处理,则弧段拓扑会出现以上的各 种可能,此时组成区的弧段有的为网段,同时它的拓扑左 右多边形号分别转化为网号和无效值0。 正是因为区边界拓扑有弧段和网段之分,而区号总 是大于0,则以上两种区文件生成方式可以利用拓扑结构 的右多边形号0来加以区分。前者可以直接利用_Union2 RegAtoB合并,后者需要进一步处理。 2自动区合并的实现 针对以上分析,可以通过两种方式实现自动区的 合并 方案一主要思路是通过若干算法使不符合条件的 公共位置弧段转化为公共弧段。原始未分幅数据在被分 割时,由于被分割开的子图继承了相同的属性,在经过处 理再次合并时,可以通过核对属性结构里没有变化的一 项取得待合并的相邻区域。然后对相邻区的弧段进行匹 配,以便获取它们的公共位置弧段,再将公共位置弧段的 重叠部分删除,仅保留一条,最后重建相邻区的弧段拓扑 结构,则所有弧段都满足_UnionRegAtoB合并条件。其 UML流程图如图7 [7]所示。 图7 方案一的UML流程图 Fig. 7 The UML flow chart of scheme I 241 测绘与空间地理信息 2009年 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 方案二利用MapGIS编辑功能的组合来实现。 1 让区文件处于编辑状态,首先使用“ 其他 ” 菜单下 的“ 生成Label点 ” 功能,生成区的Label点文件,使之暂存 区的属性,以便区拓扑重建后赋值属性。 2 通过“ 其他 ” 菜单的“ 弧段转线 ” 的功能,提取组成 区的弧段边界信息,此时生成的是线文件。 3 在MapGIS的编辑子系统里导入刚提取的线文件, 使之处于编辑并被勾选的状态,打开“ 其他 ” 菜单,应用 “ 自动剪断线 ” 功能,此时通过自动剪断线,公共位置弧段 的复杂情况均被排除,经过自动剪断线处理后,公共位置 弧段重叠的部分将被删除。 4 此时,通过“ 检查 ” 菜单下的“ 线拓扑检查 ” 检查后, 便可以由“ 其他 ” 菜单下的“ 线转弧段 ”,生产构区的弧段 文件,生成的弧段文件再应用“ 拓扑重建 ”,则生成了符合 _UnionRegAtoB合并条件的区文件,将拓扑重建后的文件 应用“Label点与区合并 ” 功能赋值区属性。 5 最后,应用API区合并函数_UnionRegAtoB进行自 动合并区。 如图8中,待合并图斑对有三对,分别为1 - 2 , 图8 处理结果 Fig. 8 The processing results 3 - 4 , 5 - 6 ,经过以上两种方案的处理,它们便自动 合并,即实现了自动接边功能。 3结束语 MapGIS作为国产的新一代面向网络超大型分布式地 理信息系统基础软件平台,随着社会经济发展的需要,必 然会得到更多地普及和应用,全国第二次土地调查很多 省市就采用MapGIS作为处理平台,而随着应用的普及, 在使用MapGIS的过程中也会体现出诸多的不便,这就需 要更多地将MapGIS与MapGIS SDK二次开发技术很好地 结合起来。本文所提出来的两种方法在实际应用中很好 地解决了MapGIS所不能处理的自动区合并的不足,更加 方便用户的操作。 参考文献 [1 ] 左仁广,夏庆霖,谭宁.基于MapGIS图元参数检索开发 与应用[J ].测绘科学, 2007, 32 4 86 - 87. [2 ] 中地数码有限公司. MAPGIS二次开发帮助[ G].武汉 武汉中地数码, 2001. [3 ] 郭际元,曾文. MAPGIS地理信息系统的二次开发[J ]. 测绘信息与工程, 2000, 1 16 - 18. [4 ] 龚健雅,杜道生,李清权,等.当代地理信息技术[M ].北 京科学出版社, 2004. [5 ] 王敬恩,康义凯,景俊红. MAPGIS在地理信息数据处理 中的应用[J ].工程技术, 2007, 28 253 - 255 [6 ] 孙国庆,温迎庆.基于MAPGIS明码文件实现区域自动 填充的实践[J ].西部探矿工程, 2007, 29 1 97 - 98. [7 ] [美]Richard C. Lernechker TomArcher . VC 6宝典 [M ].北京电子工业出版社, 2001. [责任编辑姚艳霞] 上接第139页 据统计资料显示, [2]我国城市数字正射影像图相对于线 划图无论是数量还是种类均少得多,覆盖范围也很有限, 数字正射影像图所用片种包括黑白、 彩红外和真彩色三 种,主要用途是城市规划、 土地调查和更新地形图。 3 结束语 基础空间信息建设是数字城市建设中的一项基础设 施建设,是建立各级城市地理信息系统的基础。它是城 市规划、 建设、 管理的现代化工具。数字摄影测量是基础 空间信息建设能够得以顺利实施的重要手段之一。随着 数字产品的日益丰富,数字摄影测量必将在建设中国数 字城市工程中独占一隅,发挥其更大的优势。 参考文献 [1 ] 李德仁. 21世纪测绘发展趋势与我们的任务[J ].科技 视野, 2005, 30 8 2 - 3. [2 ]陈波,刘阳,王宏.数字摄影测量在数字城市建设中的作 用[J ]. 2004, 16 4 3 - 5. [3 ]李德仁. GPS用于摄影测量预遥感[M ].北京测绘出版 社[M ]. 1996. [4 ]刘先林. S WDC系列数字航空摄影仪技术报告[ R ].北 京北京四维远见信息技术有限公司. 2007 5 - 10. [5 ]张祖勋,张剑清.数字摄影测量学[M ].武汉武汉大学 出版社, 1997. [6 ]刘磊,卢秀山,李靖. PPP技术在数码航空摄影测量中的 应用[J ]. 2007, 26 3 1 - 2. [7 ]张小红,刘经南, Rene Forsberg .基于精密单点定位技术 的航空测量应用实践[J ]. 2006, 31 1 4 - 5. [责任编辑李 颖] 341第3期饶四强等基于MapGIS SDK自动区合并的研究与实现
展开阅读全文