SuperMap iObjects .NET之二维面转三维面

类型转换是大家在日常工作中经常用到的功能,特别是二维面转三维面的功能。面数据相对于线数据较为复杂,可能是具有子对象的导洞多边形,那对于这种数据转换的思路又是什么呢?.NET组件中对于二维面转三维面没有直接的接口,小编就整理了二维面转三维面的思路与代码供大家参考。

子对象信息可以在桌面iDesktop中,右键属性查看,本例如下图:

 注意!!!:如果想要生成三维面以后加载到场景里面,还是导洞多边形的样子,就需要导洞多边形的内外面节点绘制方向相反。例如:外面那个多边形是顺时针绘制,里面的多边形则要逆时针绘制。如不满足这种条件,加载到三维场景以后会出现以下情况:

二维面转三维面大致思路:

1.新建三维面数据集,并定义坐标系

2.获取二维记录集recordset,并且获取到recordset中的point2Ds结点信息

3.遍历二维面记录集,并将节点信息更新到三维面记录集

        3.1遍历recorset中的子对象(如果子对象为1,则循环一次,构建geoRegion3D完成;如果子对象不为1,则循环二维子对象信息,并存入geoRegion3D)

                3.1.1获取二维单个面对象中所包含的点对象point2Ds ,并将其存入point3Ds

                3.1.2通过point3Ds构造GeoRegion3D

        3.2将geoRegion3D更新到recordset3D中

4.关闭释放

具体的实现思路如下:

创建三维面数据集

                // 设置三维面数据集的信息
                DatasetVectorInfo datasetVectorInfo = new DatasetVectorInfo();
                datasetVectorInfo.Type = DatasetType.Region3D;
                datasetVectorInfo.IsFileCache = true;
                datasetVect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值