ArcEngine下SceneControl叠加影像数据(构建三维地形)

本文介绍如何在三维地形模型上叠加影像数据以实现纹理映射,通过设置图层属性及使用I3DProperties接口实现影像数据与地形表面的结合。

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

载入完TIN数据后。须要在三维物体上描绘细节。即纹理;建立DEM表面点与纹理空间点的关系,即纹理映射。叠加影像数据就是把影像看作纹理。将其贴在地形表面,让其具有地形起伏的三维效果。

这里与GlobeControl下三维场景的构建有所不同,在前面的博文中我们提到过,globe下图层主要有三种类型:Floating、Draped、Elevation(浮动、叠加和高程图层),即仅仅须要设置图层的属性就可以。叠加图层与浮动图层从高程图层获取高程值。SceneControl中实现影像的叠加,參照ArcScene中的操作:“右键”——>“属性”——>“基本高度”——>“从表面获取的高程”,设置为浮动在自己定义表面。


这里主要使用I3DProperties接口,代码例如以下:

                ISceneGraph pSceneGraph = axSceneControl1.SceneGraph;
                IScene pScene = pSceneGraph.Scene;
                ITinLayer pTinLayer = null;
                IRasterLayer pRasterlayer = null;
                //获取TIN、DOM
                for (int i = 0;i < pScene.LayerCount;i++)
                {
                    ILayer pLayer = pScene.get_Layer(i);
                    if (pLayer is ITinLayer)
                    {
                        pTinLayer = pLayer as ITinLayer;
                    }
                    if (pLayer is IRasterLayer)
                    {
                        pRasterlayer = pLayer as IRasterLayer;
                    }

                }
                //设置3D属性
                ITinAdvanced tinAdvanced = pTinLayer.Dataset as ITinAdvanced;
                ISurface surface = tinAdvanced.Surface;

                ILayerExtensions layerExtensions = pRasterlayer as ILayerExtensions;
                I3DProperties p3DProperties = null;

                for (int i = 0;i < layerExtensions.ExtensionCount;i++)
                {
                    if (layerExtensions.get_Extension(i) is I3DProperties)
                    {
                        p3DProperties = layerExtensions.get_Extension(i) as I3DProperties;
                    }
                }
                p3DProperties.BaseOption = esriBaseOption.esriBaseSurface;
                p3DProperties.BaseSurface = surface;
                p3DProperties.Apply3DProperties(pRasterlayer);

转载于:https://www.cnblogs.com/liguangsunls/p/7380912.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值