arcengine 调用arcscene三维显示代码

 public static void Display3DEM(AxSceneControl sc, ILayer TIFFLayer, ILayer DEMLayer, double Z)
        {
            IRasterSurface rsurface = new RasterSurface();    //定义基面
            ISurface surface;
            IRasterLayer DEMRasterLayer = DEMLayer as IRasterLayer;  //接收基面
            IRaster DEMraster = (IRaster)DEMRasterLayer.Raster;            //基面rasterLayer转为RASTER

            IRasterBandCollection DEMrasterbands = DEMraster as IRasterBandCollection;//基面转为波段收集器
            IRasterBand DEMrasterband = DEMrasterbands.Item(0);//获取第一个波段
            rsurface.RasterBand = DEMrasterband;//获取的第一个波段写入到栅格基面波段中
            surface = rsurface as ISurface;//栅格表面转换为基面

            ILayerExtensions layerextensions = TIFFLayer as ILayerExtensions;//Provides access to the extensions of a layer
            I3DProperties properties = new Raster3DPropertiesClass();
            int i;
            object p3d;
            for (i = 0; i < layerextensions.ExtensionCount; i++)
            {
                p3d = layerextensions.get_Extension(i);
                if (p3d != null)
                {
                    properties = (I3DProperties)p3d;
                    break;
                }
            }

            properties.BaseOption = esriBaseOption.esriBaseSurface; //esriBaseOption包括三种表达,形状,面
            properties.BaseSurface = surface;                      //基面提供对功能表面的信息的访问,产生给定x,y位置的高度
            properties.Apply3DProperties(TIFFLayer);                  //应用3D属性
            properties.ZFactor = Z;                                //缩放因子

            sc.Scene.SceneGraph.RefreshViewers();
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值