使用FME生成2.5维数据时发现的一个问题

本文介绍了一种使用FME将2维shp数据转换为2.5维数据的方法,并解决了图形生成错误的问题。通过调整原始二维数据中各边的顺序,确保长方体各面正确叠加,从而生成正确的2.5维图形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文发布时间:2012-12-17

作者:一辉

笔者最近遇到一个客户,想要使用FME将2维的shp数据生成2.5维数据,然后将结果输出到pdf里面给领导作展示用。然而在制作的过程中发现发现部分的图形生成的结果是错误的。如下图:大家仔细看左边最小图形的形状是错误的。

            

稍微想下就不难发现导致这种错误的原因是,小长方体的各个面的放置顺序不对,导致的图层间的压盖以至于显示达不到预期效果。

既然发现了那该如何解决呢,长方体的各个面的压盖顺序又跟什么有关系呢,笔者经过测试,发现长方体的各个面的排列顺序与原始的二维数据的房屋面的各条边的顺序是相同的,所以想要得到正确的图形,首先需要改变原始二维数据的各条边的排列顺序,那么各条边该如何排序才能生成正确的长方体呢?

我们首先了解下FME生成2.5维数据的采用的方法,FME较常采用的方法,首先在原先的多边形房屋的基础上进行Y方向的平移,平移的高度即为房屋的高度,然后在进行三维仿射,仿射完成后进行二维化生成侧面即可,顶面即为前面平移得到的面。

了解了FME生成2.5维数据的方式之后,笔者测试结果是只要找到房屋最左边的点即X坐标最小的点,然后其余的点以此点为起点逆时针的方向排序,则可生成正确的2.5维图形,当然采用这种方法目前没发现问题,不知道后面会不会出现问题。期待各位大侠测试指正。

方法确定以后,就是实现的问题了,给面的各个点重新排序过程并不复杂,附上模板感兴趣的读者可以参考下,当然如果有更加优化的方法的话,也希望大家多多分享。

            


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值