FME 对线面压盖的处理

问题描述

一个房屋面的图层和一个交通线的图层,存在线面压盖的情况。这种肯定是不允许的,那么往往就需要去调整交通线,使其避开房屋面。到达如下图所示效果:

FME 对线面压盖的处理_第1张图片

解决思路

当线和面压盖时,压盖那部分线用面的边缘那部分代替线部分如下图所示:(图片来源于:https://blog.csdn.net/fmechina)

FME 对线面压盖的处理_第2张图片

但是为了稍微使线挪动之后更加“美观”可对面向外进行一定缓冲,截取缓冲的部分作为替换部分如下图所示:(图片来源于:https://blog.csdn.net/fmechina)

FME 对线面压盖的处理_第3张图片

在截取面部分边线的时候,需要选择线切割后面积较小的部分,此时需要用线去切割面,而FME没有转换器能直接实现,实现思路是将面转成线,再用线去切割面的边线,然后对切割后的面边线进行重新构面。

获取切割后面积较小的部分后,还需要将获取的面转成线,再用线去切割面的边线,移除切割后重复的部分后将线连接起来。使用LineOnLineOverlayer转换器后,重复部分的_overlaps的值大于1,可使用Tester转换器进行筛选。

模板截图

FME 对线面压盖的处理_第4张图片

核心转换器

Bufferer:在几何对象的外部或者内部创建指定距离的缓冲区

GeometryCoercer:重新设置要素的几何类型(这里主要用于将面转换为线)

Sorter:根据某个属性值对要素排序

Sampler:根据Sampling Type选项的选择进行抽样(这里与Sorter配合使用,用于获取切割后面积较小的部分)

LineOnLineOverlay:线与线的压盖操作(要注意设置容差值,容差不同,结果不同)

LineCombiner:把线连接成更长的线

你可能感兴趣的:(FME 对线面压盖的处理)