当线面压盖的时候如何去挪动线使线不再压盖在面上?

 

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

有的交通线压盖了几个房屋面,有的房屋面上面有几条交通线,在技术交流群里面请教过之后贝贝大神给我提供了思路,即当线和面压盖时,压盖那部分线用面的边缘那部分代替线部分如下图所示:

但是为了稍微使线挪动之后更加“美观”可对面向外进行一定缓冲,截取缓冲的部分作为替换部分如下图所示:

思路有了接下来就要考虑如何用FME去实现了。

做好的模板如上图所示,主要涉及的思路就是在截取面部分边线的时候,需要选择线切割后面积较小的部分,此时需要用线去切割面,而FME没有转换器能直接实现,实现思路是将面转成线,再用线去切割面的边线,然后对切割后的面边线进行重新构面。

在最后用保留的小面部分与交通线进行叠加的时候,发现明明是重叠的一直有部分叠加不上,这个时候2018容差的优势就体现出来了

设置容差为0.0001后即可实现全部叠加。

实现后的效果如下图:

缺陷与思考:

此模板只考虑了一条线压盖多个面,或多条线压盖一个面的情况,若一条线多次压盖同一个面,则只会对一处压盖进行挪动,实际需要可考虑循环进行处理。另外实际情况中,个人觉得这种挪动的方法只可能适用于那种线压盖了一小部分面的情况的处理,则可在模板中增加线切割面后两部分面积的比率考虑(或实际的面积大小)进去,对压盖面积过大的单独踢出进行人工处理。

Ps:有些地方可能描述的不清楚,大家觉得有不对的地方或者大家有新的思路或方法欢迎一起讨论。

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值