巧妙利用图廓进行图幅接边

原文发布时间:2012-08-20

作者:怕冷的企鹅

无论数据建库的结构有多么的千差万别,一旦涉及到地形图的数据入库,就会不可避免的涉及到数据接边问题。

随着信息化、规范化的进程,数据接边也越来越趋向于程序的自动化。本篇文章就针对地形图的数据接边操作,提出一种新的思路和方法。利用内图廓的完成地形图中图幅间面要素基于图形、属性的接边工作的思路。

注:本文中只涉及到地形图中的面要素。另外,在接边过程中不考虑容差问题,也就是进行接边的图幅数据都是通过接边类的检查(接边检查工作我会在今后的文章中做介绍)操作并合格的情况。

本文中对面要素的接边情况一共提出了3种情况,每种情况都有其接边的要求。三种情况我们均已居民地层的房屋要素为例,说明如下:

1、一个要素跨越了两个图幅;

                    

                         接边前                                              接边目标

  说明:  红色的线代表内图廓线, 接边前,一个要素分图廓线分为了两个部分,其图形有公共边,其属性(值都为玻璃)也一致。完全符合传统的接边要求。

    2、一个要素跨越了多个图幅;

                     

                         接边前                                              接边目标

说明:红色的线代表内图廓线,接边前,一个要素跨越了三幅图,被分为了三部分,其图形有公共边,其属性(值都为土)也一致。完全符合传统的接边要求。

 

3、属性一致、图形有公共边的两个要素都跨越了两个图幅;

        

说明:第三种情况属于一种特殊情况,红色的图廓线将两个要素分别分成2部分,接边前,四部分内容相邻的部分都有公共边、属性(都为砖2)也相同,但是在实际测量情况下,两者确实为2个要素。在此类情况下,利用图廓接边的思路实现这种接边的效果就比较有优势了。

首先,在利用FME实现数据接边之前,我们先了解一下利用图廓线进行接边的思路。此类接边算法依据的原则很简单:就是与内图廓线的公共边是否完全相同、且属性一致。

依据以上的基本思路,我们就可以利用FME 逐步实现。以下的详细思路仅供参考:首先利用FME获得内图廓线和面要素的公共边,然后对公共边进行编号,将编号后的线与面要素再次进行空间叠加,判断面要素中继承的线编号是否一致,最后将此编号和其他属性组合一起,作为面融合的条件。

参考模板如下:

此模板解决了前面所说的三种接边情况。

第一种情况是最简单的情况。利用直接利用fme的Dissolver转换器即可完成其接边操作,当然若增加属性条件的话,只需在此转换器中的分组参数(Group by)设置即可完成。

 

第二张情况就相对比较复杂,此类要素的典型要素就是水系面,这种情况下,有时候面会跨越2个图幅或者更多的图幅,所以在此种情况下,就增加了图廓边的单边融合,换句话说,就是将图幅保证每次融合前都只有一条2个节点的图廓边线参与。这样就保证了要素接边是保证跨多个图幅的要素可以重复融合。

注:此处,可能会有用户要问了,就是如果我是两幅图以上甚至十多幅图时,其图廓边线就不止四条了,那岂不是要成倍增加【Testfilter】转换器的过滤项了?我的回答是,不一定,我可以在融合前对图廓进行简单处理,例如:先获取重复的图廓线,因为重复的图廓线才代表有要素需要接边,然后将x值一致的线都连接为一条直线,y值一致的线连接为一条直线。

 

第三张情况是一种特殊情况,用户需要将某些虽然有公共边、属性也一致的要素进行基于图廓边的接边操作,保证图中四个要素接边后变成2个,而不是1个。针对这种情况,我们在融合转换器前面增加了一些条件判断的辅助转换器,从而生成了一个自定义转换器(Area_JieBian)此转换器的大致界面如下: 

利用这些转换器就可以实现第三种情况的要求。 

三种情况的接边效果图如下:

【接边前】:


利用这些转换器就可以实现第三种情况的要求。

 

三种情况的接边效果图如下:

    【接边前】:


【接边后】:


总结:基于内图廓线的接边方式提高了程序接边的准确率,从而大大减少了人工接边的工作量。另外,利用FME实现这种数据接边的思路相对容易实现,不受数据格式的限制,减少了开发的工作量。

转载自:https://blog.csdn.net/fmechina/article/details/80770129

You may also like...