com.supermap.analyst.spatialanalyst

类 ConversionAnalystParameter

  • java.lang.Object
    • com.supermap.analyst.spatialanalyst.ConversionAnalystParameter


  • public class ConversionAnalystParameter
    extends Object
    矢量栅格转换参数设置类。

    矢栅转换参数设置类用于设置矢量转栅格和栅格转矢量时的各个参数,其中栅格转矢量时,可以只转换指定值的栅格,以及转换为矢量线时进行光滑。对于以上功能,其需要设置的参数有所不同,可参考下表。

    注:

    ① 必设参数如果不设置,在使用 ConversionAnalyst 类的相关方法进行矢栅转换时会抛出异常。

    ② 可选参数为不必须设置的参数,一般设有默认值,用户可根据实际研究的目的进行选择设置。

    ③ 必须设置 setTargetDatasetType 为 DatasetType.LINE,即将栅格转换为矢量线数据时,对 setThinRaster、setSmoothMethod、setSmoothDegree 方法的设置才有效。

    ④ 当 setSmoothMethod 指定为 SmoothMethod.NONE 以外的值时,setSmoothDegree 的设置才有效。

    示范代码:
    有关矢量栅格转换的示例,还可参见 rasterToVector 方法vectorToRaster 方法的示例。
    • 构造器详细资料

      • ConversionAnalystParameter

        public ConversionAnalystParameter()
        构造一个新的 ConversionParameter 对象。
      • ConversionAnalystParameter

        public ConversionAnalystParameter(ConversionAnalystParameter parameter)
        根据给定的 ConversionParameter 对象构造一个与其完全相同的新对象。
        参数:
        parameter - 指定的 ConversionParameter 对象。
    • 方法详细资料

      • getNoValue

        public double getNoValue()
        返回栅格数据集为无值,只在矢量转栅格时有效。
        返回:
        栅格数据集为无值。
        默认值:
        默认值为无值。
      • setNoValue

        public void setNoValue(double noValue)
        设置栅格数据集为无值,只在矢量转栅格时有效。
        参数:
        noValue - 栅格数据集为无值。
      • getSourceDataset

        public Dataset getSourceDataset()
        返回待转换或细化的数据集。
        返回:
        待转换或细化的数据集。
      • setSourceDataset

        public void setSourceDataset(Dataset sourceDataset)
        设置待转换或细化的数据集。如果不设置,将抛出异常。
        参数:
        sourceDataset - 待转换或细化的数据集。
      • getTargetDatasource

        public Datasource getTargetDatasource()
        返回用于存储结果数据集的数据源。
        返回:
        用于存储结果数据集的数据源。
      • setTargetDatasource

        public void setTargetDatasource(Datasource targetDatasource)
        设置用于存储结果数据集的数据源。

        注意:如果设置为 null,或者不设置,则结果数据集会存储到源数据集所在的数据源中。如果没有设置该方法,但在栅格分析环境中设置了相关参数,则存储到该参数所指的数据源中。

        参数:
        targetDatasource - 用于存储结果数据集的数据源。
      • getTargetDatasetName

        public String getTargetDatasetName()
        返回结果数据集的名称。
        返回:
        结果数据集的名称。
      • setTargetDatasetName

        public void setTargetDatasetName(String targetDatasetName)
        设置结果数据集的名称。如果不设置,将抛出异常。
        参数:
        targetDatasetName - 结果数据集的名称。
      • getValueFieldName

        public String getValueFieldName()
        返回矢量数据集中存储栅格值的字段。

        详细介绍请参见 setValueFieldName 方法。

        返回:
        矢量数据集中存储栅格值的字段。
      • setValueFieldName

        public void setValueFieldName(String valueFieldName)
        设置矢量数据集中存储栅格值的字段。如果不设置,将抛出异常。

        矢量转栅格时,该字段为矢量数据集中的一个字段,结果栅格数据集的栅格值从该字段取得。不建议使用系统字段,因为系统会先根据有效区域对矢量数据进行裁剪,之后再转为栅格,由于裁剪后系统字段的值可能发生变化,从而导致结果栅格的值与原矢量数据系统字段的值不一致。如果必须使用系统字段的值,可以考虑将该字段的值拷贝到新的字段中。

        栅格转矢量时,该字段为结果矢量数据集的值字段,用来保存栅格数据集的栅格值。注意,该字段必须为非系统字段。

        参数:
        valueFieldName - 矢量数据集中存储栅格值的字段。
      • getClipRegion

        public GeoRegion getClipRegion()
        返回转换的有效区域。
        返回:
        转换的有效区域。
        默认值:
        默认值为 null,即用户设置的分析范围。
      • setClipRegion

        public void setClipRegion(GeoRegion clipRegion)
        设置转换的有效区域。
        参数:
        clipRegion - 转换的有效区域。
      • getTargetDatasetType

        public DatasetType getTargetDatasetType()
        返回结果矢量数据集类型,可以设置为点、线、面类型,只在栅格转矢量时有效。
        返回:
        矢量数据集类型。
        默认值:
        默认值为 DatasetType.POINT
      • setTargetDatasetType

        public void setTargetDatasetType(DatasetType targetDatasetType)
        设置结果矢量数据集类型,可以设置为点、线、面类型,只在栅格转矢量时有效。
        参数:
        targetDatasetType - 矢量数据集类型。
      • getPixelFormat

        public PixelFormat getPixelFormat()
        返回结果栅格数据集的像素格式,只在矢量转栅格时有效。
        返回:
        结果栅格数据集的像素格式。
        默认值:
        默认值为 PixelFormat.SINGLE
      • setPixelFormat

        public void setPixelFormat(PixelFormat pixelFormat)
        设置结果栅格数据集的像素格式,只在矢量转栅格时有效。
        参数:
        pixelFormat - 结果栅格数据集的像素格式。
      • getCellSize

        public double getCellSize()
        返回结果栅格数据集的单元格大小,只在矢量转栅格时有效。单位与结果栅格数据集的坐标系单位相同。
        返回:
        结果栅格数据集的单元格大小。
        默认值:
        默认值为 L/500,L 是指结果数据集的区域范围对应的矩形的对角线长度。
      • setCellSize

        public void setCellSize(double cellSize)
        设置结果栅格数据集的单元格大小,只在矢量转栅格时有效。单位与结果栅格数据集的坐标系单位相同,结果栅格数据集的坐标系与用于转换的矢量数据集的相同。
        参数:
        cellSize - 结果栅格数据集的单元格大小。
      • getBackOrNoValue

        public long getBackOrNoValue()
        返回栅格的背景色或表示无值的值,只在栅格转矢量时有效。
        返回:
        栅格的背景色或表示无值的值。
        默认值:
        默认值为 -9999。
      • setBackOrNoValue

        public void setBackOrNoValue(long backOrNoValue)
        设置栅格的背景色或表示无值的值,只在栅格转矢量时有效。

        将栅格数据转换为矢量数据时,允许用户指定一个值来标识那些不需要转换的单元格。SuperMap 支持的可转换为矢量的栅格数据有两种:栅格数据集(DatasetGrid)和影像数据集(DatasetImage)。

        • 当被转换的栅格数据为栅格数据集时,栅格值为指定的值的单元格被视为无值,这些单元格不会被转换,而栅格的原无值将作为有效值来参与转换。
        • 当被转化的栅格数据为影像数据集时,栅格值为指定的值的单元格被视为背景色,从而不参与转换。

          需要注意,影像数据集中栅格值代表的是一个颜色或颜色的索引值,与其像素格式(PixelFormat)有关。对于 BIT32、UBIT32、RGBA、RGB 和 BIT16 格式的影像数据集,其栅格值对应为 RGB 颜色,因此,如果想要将某种颜色设为背景色,为该属性设置的值应为将该颜色(RGB 值)转为 32 位整型之后的值,系统内部会根据像素格式再进行相应的转换;对于 UBIT8 和 UBIT4 格式的影像数据集,其栅格值对应的是颜色的索引值,因此,应为该属性设置的值为被视为背景色的颜色对应的索引值。

        注意:还可以通过 setBackOrNoValueTolerance 方法指定一个值作为无值或背景色的容限值,栅格值在容限范围内的单元格也被视为无值或者背景色而不参与转换。

        参数:
        backOrNoValue - 栅格的背景色或表示无值的值。
      • getBackOrNoValueTolerance

        public double getBackOrNoValueTolerance()
        返回栅格背景色的容限或无值的容限,只在栅格转矢量时有效。
        返回:
        栅格背景色的容限或无效值的容限。
        默认值:
        默认值为 0.0。
      • setBackOrNoValueTolerance

        public void setBackOrNoValueTolerance(double backOrNoValueTolerance)
        设置栅格背景色的容限或无值的容限,只在栅格转矢量时有效。

        在栅格转矢量时,该方法用于配合 setBackOrNoValue 方法(指定栅格无值或者背景色)来共同确定栅格数据中哪些值不被转换。

        • 当被转换的栅格数据为栅格数据集时,如果指定为无值的值为 a,指定的无值的容限为 b,则栅格值在[a-b,a+b]范围内的单元格均被视为无值。需要注意,无值的容限是用户指定的无值的值的容限,与栅格中原无值无关。
        • 当被转化的栅格数据为影像数据集时,该容限值为一个32位整型值。该值代表的意义与影像数据集的像素格式有关:对于栅格值对应 RGB 颜色的影像数据集,该值在系统内部被转为分别对应 R、G、B 的三个容限值,例如,指定为背景色的颜色为(100,200,60),指定的容限值为329738,该值对应的 RGB 值为(10,8,5),则值在(90,192,55)和(110,208,65)之间的颜色均为背景色;对于栅格值为颜色索引值的影像数据集,该容限值为颜色索引值的容限,在该容限范围内的栅格值均视为背景色。
        参数:
        backOrNoValueTolerance - 栅格背景色的容限或无效值的容限。
      • getSpecifiedValue

        public long getSpecifiedValue()
        返回栅格按值转矢量时指定的栅格值。
        返回:
        指定的栅格值。
        默认值:
        默认值为 -999999。
      • setSpecifiedValue

        public void setSpecifiedValue(long specifiedValue)
        设置栅格按值转矢量时指定的栅格值。
        参数:
        specifiedValue - 指定的栅格值。
      • getSpecifiedValueTolerance

        public double getSpecifiedValueTolerance()
        返回栅格按值转矢量时指定的栅格值的容限。
        返回:
        指定的栅格值的容限。
        默认值:
        默认值为 0.0。
      • setSpecifiedValueTolerance

        public void setSpecifiedValueTolerance(double specifiedValueTolerance)
        设置栅格按值转矢量时指定的栅格值的容限。只有通过 setSpecifiedValue 方法设置了指定值后才有效。
        参数:
        specifiedValueTolerance - 指定的栅格值的容限。
      • getSmoothMethod

        public SmoothMethod getSmoothMethod()
        返回光滑方法,只在栅格转为矢量线数据时有效。
        返回:
        光滑方法。
        默认值:
        默认值为 SmoothMethod.NONE
      • setSmoothMethod

        public void setSmoothMethod(SmoothMethod smoothMethod)
        设置光滑方法,只在栅格转为矢量线数据时有效。
        参数:
        smoothMethod - 光滑方法。
      • getSmoothDegree

        public int getSmoothDegree()
        返回光滑度,只在栅格转为矢量线数据,且 SmoothMethod 不为 SmoothMethod.NONE 时有效。

        光滑度的有效取值与光滑方法有关,当光滑方法为 B 样条法时,光滑度的值小于 2 时将不会进行光滑,采用磨角法时,光滑度的值设置为大于等于 1 时有效。光滑度的值越大,则结果矢量线的光滑度越高。

        返回:
        光滑度。
        默认值:
        默认值为 0。
      • setSmoothDegree

        public void setSmoothDegree(int smoothDegree)
        设置光滑度,只在栅格转为矢量线数据,且 SmoothMethod 不为 SmoothMethod.NONE 时有效。

        光滑度的有效取值与光滑方法有关,光滑方法有 B 样条法和磨角法,关于这两种方法的介绍,请参见 SmoothMethod 类。

        • 光滑方法为 B 样条法时,光滑度的有效取值为大于等于2的整数,建议取值范围为[2,10]。下图为设置不同光滑系数时的光滑效果:

        • 光滑方法为磨角法时,光滑度代表一次光滑过程中磨角的次数,设置为大于等于1的整数时有效。

        光滑度的值越大,光滑度的值越大,则结果矢量线的光滑度越高。

        参数:
        smoothDegree - 光滑度。
      • isThinRaster

        public boolean isThinRaster()
        返回转换之前是否进行栅格细化,只在栅格转为矢量线数据时有效。
        返回:
        转换之前是否进行栅格细化。
        默认值:
        默认值为 true。
      • setThinRaster

        public void setThinRaster(boolean thinRaster)
        设置转换之前是否进行栅格细化,只在栅格转为矢量线数据时有效。
        参数:
        thinRaster - 转换之前是否进行栅格细化。
      • isAllTouched

        public boolean isAllTouched()
        返回线转栅格时是否转换出所有与折线接触的栅格.
        返回:
        是否转换出所有与折线接触的栅格。
        默认值:
        默认值为 true,false为brezenhams栅格化方法。
      • setAllTouched

        public void setAllTouched(boolean isAllTouched)
        设置线转栅格时是否转换出所有与折线接触的栅格。
        参数:
        isAllTouched - 是否转换出所有与折线接触的栅格。

Copyright © 2021–2024 SuperMap. All rights reserved.