类型转换是大家在日常工作中经常用到的功能,特别是二维面转三维面的功能。面数据相对于线数据较为复杂,可能是具有子对象的导洞多边形,那对于这种数据转换的思路又是什么呢?.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

369

被折叠的 条评论
为什么被折叠?



