2019FME博客大赛——FME对面要素调整起点及编号

参赛单元:传统GIS数据处理

作者:黎贵明

单位:深圳市国测测绘技术有限公司

 

前言

话说已经2019了,我电脑依然停留在FME Desktop 2015.1.1版本,与其说是怀旧,不如说其实是太多东西都采用了2015版本编写,已经习惯了,多少次说要跟上大神的节奏,跟上2019炫黑的节奏,有没有跟我一样的呢?我想答案应该是肯定的。网络与大数据方面有自己摸索和实践,都是比较简单的网络数据获取和与自己云服务器进行数据共享、挂接,经验比较少,还需向大伙学习,近两年还是在与传统GIS数据处理碰撞得比较多,特别是地籍、三调等等。故,在FME2019年博客大赛,还是再次与大家分享我在传统GIS数据处理使用到FME的一些实践经验,主要分享两个案例:

FME对dwg中的JMD层的房屋调整坐标起点;

FME对dwg中的JMD层的房屋面进行顺序编号并标注在房屋面左上角;

以上两个案例都在同一个fmw模板中运行实现。

一、FME对dwg中的JMD层的房屋调整坐标起点

背景:

在地籍、地形数据整理中,会发现很多旧数据、矢量化的数据或者新采集的数据,都存在面要素方向不一致,坐标起点不统一的问题,导致在后期的建库和界址点、界址线等生成的时候不符合规范,比如说宗地,一般要求是西北角为起点顺时针方向,界址点编号是西北角为J1,顺时针依次为J2、J3…Jn,若基础矢量数据不处理好,难以进行地籍调查表的编制,换句话说,这个问题不管是前期还是后期,都是需要处理的。采用人工处理,在CASS中貌似可以对单宗数据进行处理,具体不熟悉,不知可否批量处理,若是单宗逐个处理,那就更费劲了,因为还要找到错的地方,还经常错漏,导致下一步工序不顺畅甚至需要返工处理。

思路:

只要是合理的面要素,且面积大于0,那他一定可以取最小外接矩形框,只要有外接矩形,就可以轻松获取他的几何X、Y的最大最小值,比如,一个矩形其X取最小,Y取最大值时,就是他的西北角或者说左上角,我的思路就是根据面要素的最小外接矩形,获得西北角点、东北角点、东南角点、西南角点,然后使用Orientor调整方向,面要素用Chopper最大节点数设置为1,拆分为N个点,使用NeighborFinder进行近邻分析,分别找到离最小外接矩形节点(四个角)最近的点,作为面的起点之一(这里在FME中添加了发布参数,共4个参数可选),再根据新的起点对应的原始起点顺序用AttributeCreator进行计算重新调整节点顺序,根据新的节点顺序Sorter排序后PointConnector连接成线,并LineCloser闭合,即调整好了面要素

具体模板如下:

  • 、对面要素Counter统一编唯一值,Orientor选择RIGHT_HAND_RULE右手法则,即统一顺时针方向;
  • 、CoordinateCounter获取面要素坐标总数,为了之后节点序号调整用,Chopper获得单个节点,并使用唯一值作为分组从0开始顺序编号,为了记录面要素原始节点顺序号;
  • 、BoundingBoxReplacer获取面要素最小外接矩形,Chopper获取西南角点、西北角点、东北角点、东南角点,并分别编号为1/2/3/4;

  • 9
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值