首页 / 浏览问题 / 组件GIS / 问题详情
C# 中如何获得影像数据集的无值并且设置到图层中
53EXP 2021年12月20日
            int[] bandindex = new int[(dataset as DatasetImage).BandCount];
            double noData = 256;
            // 获取图层无值
            for (int i = 0; i < (dataset as DatasetImage).BandCount; i++)
            {
                bandindex[i] = i;
                noData *= dataset.GetNoData(i);
            }
            //设置风格并添加数据集
            //Set the style and add the point dataset
            LayerSettingImage setting = new LayerSettingImage();

            setting.IsSpecialValueTransparent = true;
            setting.DisplayMode = ImageDisplayMode.Composite;
            setting.DisplayColorSpace = ColorSpaceType.RGB;
            setting.DisplayBandIndexes = bandindex;
            setting.SpecialValue = noData;


            return layers.Add(dataset, setting, true);

上面是添加影像数据集到图层的代码,设置无值属性的值是double类型,但无值信息是每个波段都有,应该怎么样才能正常获取并设置呢?

1个回答

您好,您这边具体到底是想做什么呢?

如果是要设置影像数据集的显示拉伸效果的话,不同影像类型可以设置的是不一样的,你在组件端来看并不是任何一种影像都是全参数可以设置的,您想要实现的具体是什么,用您的数据在IDesktop桌面端使用相关功能操作过没。

希望可以帮助到您!
9,788EXP 2021年12月21日

现在就是想实现,预览影像数据集的时候自动设置好无值透明的属性

建议设在layer的图层属性里。

setting.SpecialValue = noData;

现在就是通过样式设在图层里,但是.SpecialValue这个值是double类型

而数据集的无值是按波段获取dataset.GetNoData(i);

我应该怎么从数据集中获取样式LayerSettingImage所需的.SpecialValue值呢?

能贴一下代码吗? 谢谢

...