com.supermap.mapping

类 LayerSettingImage



  • public class LayerSettingImage
    extends LayerSetting

    影像图层设置类。

    图层是数据集的可视化显示,分为普通图层和专题图层,影像数据只对应普通图层。 普通图层的风格通过 Layer.getAdditionalSetting()Layer.setAdditionalSetting() 方法来返回或设置。该类用来设置影像图层的显示风格,主要是设置影像图层的透明度。

    示范代码:
    以下代码示范了如何设置影像数据集的显示风格并将其保存至地图中。

    假设打开了一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象,该数据源中存在一个名为 earth 的数据集。

     public void layerSettingImageTest() {
            // 打开数据源及影像数据集 earth
            Datasource datasource = workspace.getDatasources().get("world");
            DatasetImage dataset = (DatasetImage) datasource.getDatasets().get(
                    "earth");
    
            // 构造一个 LayerSettingImage 对象
            LayerSettingImage layerSettingImage = new LayerSettingImage();
            // 设置 LayerSettingImage 对象
            layerSettingImage.setBrightness(50);
            layerSettingImage.setContrast(60);
            layerSettingImage.setDisplayBandIndexes(new int[] {2, 3, 1});
            layerSettingImage.setDisplayColorSpace(ColorSpaceType.RGB);
            layerSettingImage.setOpaqueRate(40);
            layerSettingImage.setTransparent(true);
            layerSettingImage.setTransparentColor(java.awt.Color.yellow);
    
            // 构造一个与以上工作空间相关联的地图对象
            Map map = new Map(workspace);
    
            // 将影像数据集 earth 添加到地图中,并设置其风格
            map.getLayers().add(dataset, layerSettingImage, true);
            map.refresh();
    
            // 将地图以 image 命名并保存至工作空间中
            String mapName = workspace.getMaps().getAvailableMapName("image");
            workspace.getMaps().add(mapName, map.toXML());
            workspace.save();
    
            // 释放资源
            map.dispose();
            dataset.close();
        }
     
    • 方法详细资料

      • getColorTable

        public Colors getColorTable()
        返回颜色表。
        返回:
        颜色表。
        默认值:
        默认值与数据集保持一致。
      • setColorTable

        public void setColorTable(Colors colorTable)
        设置颜色表。
        参数:
        colorTable - 颜色表。
      • getOpaqueRate

        public int getOpaqueRate()
        返回影像图层显示的不透明度。不透明度为一个 0-100 之间的数。0为不显示;100为完全不透明。只对影像图层有效,在地图旋转的情况下也有效。
        返回:
        影像图层显示的不透明度。
        默认值:
        默认值为 100,即完全不透明。
      • setOpaqueRate

        public void setOpaqueRate(int value)
        设置影像图层显示的不透明度。不透明度为一个 0-100 之间的数。0为不显示;100为完全不透明。只对影像图层有效,在地图旋转的情况下也有效。
        参数:
        value - 影像图层显示的不透明度。
      • getContrast

        public int getContrast()
        返回影像图层的对比度。值域范围为 -100 到 100,增加对比度为正,降低对比度为负。对比度值可以保存到工作空间。
        返回:
        影像图层的对比度。
        默认值:
        默认值为 0。
      • setContrast

        public void setContrast(int value)
        设置影像图层的对比度。值域范围为 -100 到 100,增加对比度为正,降低对比度为负。对比度值可以保存到工作空间。
        参数:
        value - 影像图层的对比度。
      • getBrightness

        public int getBrightness()
        返回影像图层的亮度。值域范围为 -100 到 100,增加亮度为正,降低亮度为负。亮度值可以保存到工作空间。
        返回:
        影像图层的亮度值。
        默认值:
        默认值为 0。
      • setBrightness

        public void setBrightness(int value)
        设置影像图层的亮度。值域范围为 -100 到 100,增加亮度为正,降低亮度为负。亮度值可以保存到工作空间。
        参数:
        value - 影像图层的亮度值。
      • isTransparent

        @Deprecated
        public boolean isTransparent()
        已过时。 
        返回是否使影像图层背景透明。
        返回:
        一个布尔值指定是否使影像图层背景透明。
        默认值:
        默认值为 false。
      • setTransparent

        @Deprecated
        public void setTransparent(boolean value)
        已过时。 
        设置是否使影像图层背景透明。
        参数:
        value - 一个布尔值指定是否使影像图层背景透明。
      • getTransparentColor

        public Color getTransparentColor()
        返回背景透明色。
        返回:
        背景透明色。
        默认值:
        默认值为 Color.black。
      • setTransparentColor

        public void setTransparentColor(Color value)
        设置背景透明色。
        参数:
        value - 背景透明色。
      • getDisplayBandIndexes

        public int[] getDisplayBandIndexes()
        返回当前影像图层显示的波段索引。假设当前影像图层有若干波段,当需要按照设置的色彩模式(如 RGB)设置显示波段时,指定色彩(如 RGB 中的红色、绿色、蓝色)对应的波段索引(如0,2,1)即可。
        返回:
        当前影像图层显示的波段索引。
      • setDisplayBandIndexes

        public void setDisplayBandIndexes(int[] bandIndexes)
        设置当前影像图层显示的波段索引。假设当前影像图层有若干波段,当需要按照设置的色彩模式(如 RGB)设置显示波段时,指定色彩(如 RGB 中的红色、绿色、蓝色)对应的波段索引(如0,2,1)即可。
        参数:
        bandIndexes - 当前影像图层显示的波段索引。
      • getDisplayColorSpace

        public ColorSpaceType getDisplayColorSpace()
        返回影像图层的色彩显示模式。它会根据影像图层当前的色彩格式和显示的波段将该影像图层以该色彩模式进行显示。
        返回:
        影像图层的色彩显示模式。
        默认值:
        默认值为 RGB。
      • setDisplayColorSpace

        public void setDisplayColorSpace(ColorSpaceType colorSpace)
        设置影像图层的色彩显示模式。它会根据影像图层当前的色彩格式和显示的波段将该影像图层以该色彩模式进行显示。
        参数:
        colorSpace - 影像图层的色彩显示模式。
      • getAllSubLayers

        public String[] getAllSubLayers()
        返回所有 WMS 子图层,该方法只对 WMS 图层有效。
        返回:
        所有 WMS 子图层。
      • getVisibleSubLayers

        public String[] getVisibleSubLayers()
        返回可见的 WMS 子图层,该方法只对 WMS 图层有效。
        返回:
        可见的 WMS 子图层。
      • setVisibleSubLayers

        public void setVisibleSubLayers(String[] subLayers)
        设置可见的 WMS 子图层,该方法只对 WMS 图层有效。
        参数:
        subLayers - WMS 子图层。
      • getTransparentColorTolerance

        public int getTransparentColorTolerance()
        返回背景透明色容限,容限值范围为(0~255)。
        返回:
        背景透明色容限。
      • setTransparentColorTolerance

        public void setTransparentColorTolerance(int value)
        设置背景透明色容限,容限值范围为(0~255)。
        参数:
        value - 背景透明色容限,容限值范围为(0~255)。
      • getImageStretchOption

        public ImageStretchOption getImageStretchOption()
        返回影像拉伸参数。

        如果存在颜色表,且颜色表的数量不为0,则会使用颜色表显示影像,此时拉伸方式均不起作用,如果没有颜色表或者数量为0,则支持拉伸显示。

        返回:
        影像拉伸参数。
      • setImageStretchOption

        public void setImageStretchOption(ImageStretchOption imageStretchOption)
        设置影像拉伸参数。

        注意:如果影像数据集是16位Image,影像拉伸类型为无拉伸时,以默认的16位颜色值显示;而当影像拉伸类型为标准差拉伸或最值拉伸时,将16位Image拉伸成256色灰度图像显示。

        如果存在颜色表,且颜色表的数量不为0,则会使用颜色表显示影像,此时拉伸方式均不起作用,如果没有颜色表或者数量为0,则支持拉伸显示。

        参数:
        imageStretchOption - 影像拉伸参数。
      • getImageInterpolationMode

        public ImageInterpolationMode getImageInterpolationMode()
        返回显示图像时使用的插值算法。
        返回:
        返回显示图像时使用的插值算法。
      • setImageInterpolationMode

        public void setImageInterpolationMode(ImageInterpolationMode value)
        设置显示图像时使用的插值算法。
        参数:
        value - 指定的插值算法。
      • getSpecialValueColor

        @Deprecated
        public Color getSpecialValueColor()
        已过时。 
        设置setSpecialValue()所设定的特殊值的显示颜色。
        返回:
        返回设定的特殊值的显示颜色。
      • setSpecialValueColor

        @Deprecated
        public void setSpecialValueColor(Color value)
        已过时。 
        获取setSpecialValue()所设定的特殊值的显示颜色。
        参数:
        value - 设定的特殊值的显示颜色。
      • getSpecialValue

        @Deprecated
        public double getSpecialValue()
        已过时。 已过时。由“getNoDataValues()”接口替代。
        获取影像中的特殊值,该特殊值可以通过setSpecialValueColor()指定显示颜色。
        返回:
        影像中的特殊值。
      • setSpecialValue

        @Deprecated
        public void setSpecialValue(double value)
        已过时。 已过时。由“setNoDataValues()”接口替代。
        设置影像中的特殊值,该特殊值可以通过setSpecialValueColor()指定显示颜色。
        参数:
        value - 影像中的特殊值。
      • isSpecialValueTransparent

        @Deprecated
        public boolean isSpecialValueTransparent()
        已过时。 
        获取setSpecialValue()所设定的特殊值是否透明显示,true 表示透明显示;false表示不透明显示。
        返回:
        setSpecialValue()所设定的特殊值是否透明显示,true 表示透明显示;false表示不透明显示。
      • setSpecialValueTransparent

        @Deprecated
        public void setSpecialValueTransparent(boolean value)
        已过时。 
        设置setSpecialValue()所设定的特殊值是否透明显示,true 表示透明显示;false表示不透明显示。
        参数:
        value - setSpecialValue()所设定的特殊值是否透明显示,true 表示透明显示;false表示不透明显示。
      • getBackgroundColor

        public Color getBackgroundColor()
        获取setBackground()所指定的背景值的显示颜色。
        返回:
        setBackground()所指定的背景值的显示颜色。
      • setBackgroundColor

        public void setBackgroundColor(Color value)
        设置setBackground()所指定的背景值的显示颜色。
        参数:
        value - setBackground()所指定的背景值的显示颜色。
      • getBackgroundValue

        @Deprecated
        public double getBackgroundValue()
        已过时。 已过时。由“getBackgroundValues()”接口取代。
        获取影像中被视为背景的值。
        返回:
        影像中被视为背景的值。
      • setBackgroundValue

        @Deprecated
        public void setBackgroundValue(double value)
        已过时。 已过时。由“setBackgroundValues()”接口取代。
        设置影像中被视为背景的值。
        参数:
        value - 影像中被视为背景的值。
      • isBackgroundTransparent

        public boolean isBackgroundTransparent()
        获取setBackgroundValue()所指定的背景值是否透明显示,true 表示透明显示;false表示不透明显示。
        返回:
        setBackgroundValue()所指定的背景值是否透明显示,true 表示透明显示;false表示不透明显示。
      • setBackgroundTransparent

        public void setBackgroundTransparent(boolean value)
        设置setBackgroundValue()所指定的背景值是否透明显示,true 表示透明显示;false表示不透明显示。
        参数:
        value - setBackgroundValue()所指定的背景值是否透明显示,true 表示透明显示;false表示不透明显示。
      • isImageBackgroundReplace

        public boolean isImageBackgroundReplace()
        获取setBackgroundValue()所指定的背景值是否使用setBackgroundColor()所指定的背景颜色进行显示;true表示进行替代显示,false表示不进行替代显示。
        返回:
        setBackgroundValue()所指定的背景值是否使用setBackgroundColor()所指定的背景颜色进行显示;true表示进行替代显示,false表示不进行替代显示。
      • setImageBackgroundReplace

        public void setImageBackgroundReplace(boolean value)
        设置setBackgroundValue()所指定的背景值是否使用setBackgroundColor()所指定的背景颜色进行显示;true表示进行替代显示,false表示不进行替代显示。
        参数:
        value - setBackgroundValue()所指定的背景值是否使用setBackgroundColor()所指定的背景颜色进行显示;true表示进行替代显示,false表示不进行替代显示。
      • isImageSpecialValueReplace

        @Deprecated
        public boolean isImageSpecialValueReplace()
        已过时。 
        获取setSpecialValue()所设定的特殊值是否使用setSpecialValue()所指定的颜色显示;true表示进行替代显示,false表示不进行替代显示。
        返回:
        setSpecialValue()所设定的特殊值是否使用setSpecialValue()所指定的颜色显示;true表示进行替代显示,false表示不进行替代显示。
      • setImageSpecialValueReplace

        @Deprecated
        public void setImageSpecialValueReplace(boolean value)
        已过时。 
        设置setSpecialValue()所设定的特殊值是否使用setSpecialValue()所指定的颜色显示;true表示进行替代显示,false表示不进行替代显示。
        参数:
        value - setSpecialValue()所设定的特殊值是否使用setSpecialValue()所指定的颜色显示;true表示进行替代显示,false表示不进行替代显示。
      • isTransparentColorEnabled

        public boolean isTransparentColorEnabled()
        返回是否透明色生效
        返回:
        是否透明色生效
        抛出:
        IllegalStateException - 当前对象已被释放
      • setTransparentColorEnabled

        public void setTransparentColorEnabled(boolean value)
        设置透明色生效
        参数:
        value - 是否生效
        抛出:
        IllegalStateException - 当前对象已被释放
      • setElevationData

        public void setElevationData(ElevationData elevationData)
        设置遥感 RPC 高程信息。
        参数:
        elevationData - 遥感 RPC 高程信息。
      • getElevationData

        public ElevationData getElevationData()
        返回遥感 RPC 高程信息。
        返回:
        返回遥感 RPC 高程信息。
      • getNoDataValues

        public double[] getNoDataValues()
        获取图层无值数组。无值数组对应当前设置的颜色模式,如RGB,则无值数组中的第一个为R波段无值,第二个为G波段无值,第三个为B波段无值,以此类推。
        返回:
        无值数组
        从以下版本开始:
        11.1.1
      • setNoDataValues

        public void setNoDataValues(double[] rgbaArray)
        设置图层的无值。
        单波段显示时,仅使用无值数值的第一个数值。多波段显示时,无值数组与颜色模式相关联。如果颜色模式是RGB,则无值数组中的第一个数值为R波段无值,第二个数值为G波段无值,第三个数值为B波段无值,以此类推其他的颜色模式。
        颜色模式为RGBA或CMYK,若无值数组长度小于4,内部将会自动使用第一个值进行填充;若无值数组长度大于4时,内部仅使用前4个数值,其余忽略。以此类推其他的颜色模式。
        参数:
        rgbaArray - 无值数组。数组的个数应该与设置的显示波段个数保持一致
        抛出:
        IllegalArgumentException - 输入的无值数组为null时抛出的异常
        IllegalStateException - 如果对象已经跟Layer关联,但Layer被释放就会抛出的异常
        从以下版本开始:
        11.1.1
      • getNoDataValueColor

        public Color getNoDataValueColor()
        获取无值显示的颜色
        返回:
        无值显示的颜色
        从以下版本开始:
        11.1.1
      • setNoDataValueColor

        public void setNoDataValueColor(Color value)
        设置无值显示的颜色
        参数:
        value - 无值显示的颜色
        从以下版本开始:
        11.1.1
      • isNoDataValueTransparent

        public boolean isNoDataValueTransparent()
        无值是否透明显示
        返回:
        true 表示透明显示;false表示不透明显示。
        从以下版本开始:
        11.1.1
      • setNoDataValueTransparent

        public void setNoDataValueTransparent(boolean value)
        设置无值是否透明显示
        参数:
        value - true 表示透明显示;false表示不透明显示。
        从以下版本开始:
        11.1.1
      • getBackgroundValues

        public double[] getBackgroundValues()
        获取图层的背景值。
        背景值数组对应当前设置的颜色模式,如RGB,则背景值数组中的第一个为R波段背景值,第二个为G波段背景值,第三个为B波段背景值,以此类推。
        返回:
        背景值数组
        从以下版本开始:
        11.1.1
      • setBackgroundValues

        public void setBackgroundValues(double[] values)
        设置图层的背景值。
        单波段显示时,仅使用背景值数值的第一个数值。多波段显示时,背景值与颜色模式相关联。如果颜色模式是RGB,则背景值中的第一个数值为R波段无值,第二个数值为G波段无值,第三个数值为B波段无值,以此类推其他的颜色模式。
        颜色模式为RGBA或CMYK,若背景值数组长度小于4,内部将会自动使用第一个值进行填充;若背景值数组长度大于4时,内部仅使用前4个数值,其余忽略。以此类推其他的颜色模式。
        参数:
        values - 背景值数组。数组的个数应该与设置的显示波段个数保持一致
        抛出:
        IllegalArgumentException - 输入的无值数组为null时抛出的异常
        IllegalStateException - 如果对象已经跟Layer关联,但Layer被释放就会抛出的异常
        从以下版本开始:
        11.1.1
      • isNoDataValueReplace

        public boolean isNoDataValueReplace()
        像素值为无值的区域是否使用指定的颜色显示。
        返回:
        如果是true,表示使用指定的颜色显示,如果是false,表示不进行替代显示。
        从以下版本开始:
        11.1.1
      • setNoDataValueReplace

        public void setNoDataValueReplace(boolean value)
        设置像素值为无值的区域是否使用指定的颜色显示。
        参数:
        value - 如果是true,表示进行替代显示,如果是false,表示不进行替代显示。
        从以下版本开始:
        11.1.1
      • getGamma

        public double getGamma()
        返回影像图层的Gamma值,范围在 0 到 10 之间(包含 0和10),数值精度为小数点后两位。

        通过Gamma参数能够实现影像/栅格非线性亮度和对比度调整,从而增强图像显示细节,改善影像/栅格数据的显示质量。

        当Gamma值等于1时,图像没有进行Gamma校正。当Gamma值大于1时,图像的暗部区域对比度增加,细节更加突出,但亮部区域的细节会有所损失,整体图像变亮。当Gamma值小于1时,图像的亮部区域对比度增加,细节更加突出,但暗部区域的细节会有所损失,整体图像变暗。

        返回:
        影像图层的Gamma值,范围在 0 到 10 之间(包含 0和10),数值精度为小数点后两位。
        从以下版本开始:
        11.3.0
        默认值:
        默认值为 1。
      • setGamma

        public void setGamma(double value)
        设置影像图层的Gamma值,范围在 0 到 10 之间(包含 0和10),数值精度为小数点后两位。

        通过Gamma参数能够实现影像/栅格非线性亮度和对比度调整,从而增强图像显示细节,改善影像/栅格数据的显示质量。

        当Gamma值等于1时,图像没有进行Gamma校正。当Gamma值大于1时,图像的暗部区域对比度增加,细节更加突出,但亮部区域的细节会有所损失,整体图像变亮。当Gamma值小于1时,图像的亮部区域对比度增加,细节更加突出,但暗部区域的细节会有所损失,整体图像变暗。

        参数:
        value - 影像图层的Gamma值,范围在 0 到 10 之间(包含 0和10),数值精度为小数点后两位。
        抛出:
        IllegalArgumentException - 输入的值超出范围时抛出的异常。
        从以下版本开始:
        11.3.0

Copyright © 2021–2024 SuperMap. All rights reserved.