面要素的自相交检查与处理
原文发布时间:2013-01-04
作者:怕冷的企鹅
自相交,在几何图形有效性验证中的一个错误类型,面要素的自相交在原始数据中是最常见的,这种错误有些可以人工发现,但有些就需要借助程序来发现。自相交若不处理,则会导致要素无法转换成指定格式(尤其是Esri的格式),或者无法完成写入库等操作。
发生自相交的根本原因情况比较多,有些是因为作图人员不小心误操作,采集要素节点的时候反复添加引起的错误;还有就是因为一些检查或处理的软件再对数据进行处理的时候设置的数据精度不同,也可能会导致自相交。
常见的自相交总结了以下几种情况,有些需要看图人员放大到一定比例尺才能看到:
1:明显的自相交面要素
2:不明显的自相交面要素
3:不明显的自相交面要素
4:不明显的自相交面要素
总结了自相交的原因,就可以考虑相应的解决办法,处理方式各有不同,看你想要什么样的结果了?
若是处理完成后自相交的要素要求坐标没有任何变化的话,可以有两个方式:一个是打散成两个对象;另外就是更改原来的几何类型为aggregate. 一般建议采用后者,因为这样要素数量不会发生变化,而且也保证了图面与原始数据的一致性。以下就介绍了利用FME解决面自相交问题的方法。
FME Workbench2012或之前的版本
在2012版本的fme中,首先,要用转换器GeometryOGCValidator过滤出自相交的要素;然后利用SelfIntersector转换器将面自相交的要素进行处理,输出内容再通过GeometryFilter转换器将自相交处理结果中的有效要素(即面要素)过滤出来。整个过程中需要注意的是GeometryOGCValidator的参数设置,该转换器的默认参数是:Simple,我们需要检查的是几何图形的有效性,所以我们需要改成:Valid。
利用以上的流程进行处理后,结果如下:
FME Workbench2013版本
在2013版本的fme中,原有的GeometryOGCValidator转换器和SelfIntersevtor转换器已经不存在,其功能被新增转换器GeometryValidator包含,即新增转换器GeometryValidator即可以跟踪几何图形自身的拓扑错误,也可以对某些错误进行自动纠正。若进行自动纠正参数设置如下:
这里需要强调的是:通过此转换器处理后,有些情况需要再次进行处理,典型的情况就是第一种情况:经过处理后需要用户将这类要素过滤出来进行单独的处理,因为在2013的beta版本(小版本号13197)中,处理的结果虽然和上面利用旧版本处理的结果图面上一致,但是却不是一个带洞的多边形。所以需要用户进行聚合面的打散,然后将打散的面生动带洞的多边形。如下图:
转载自:https://blog.csdn.net/fmechina/article/details/81001109