类 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()
构造一个新的 ConversionParameter 对象。ConversionAnalystParameter(ConversionAnalystParameter parameter)
根据给定的 ConversionParameter 对象构造一个与其完全相同的新对象。
-
方法概要
所有方法 实例方法 具体方法 限定符和类型 方法和说明 long
getBackOrNoValue()
返回栅格的背景色或表示无值的值,只在栅格转矢量时有效。double
getBackOrNoValueTolerance()
返回栅格背景色的容限或无值的容限,只在栅格转矢量时有效。double
getCellSize()
返回结果栅格数据集的单元格大小,只在矢量转栅格时有效。GeoRegion
getClipRegion()
返回转换的有效区域。double
getNoValue()
返回栅格数据集为无值,只在矢量转栅格时有效。PixelFormat
getPixelFormat()
返回结果栅格数据集的像素格式,只在矢量转栅格时有效。int
getSmoothDegree()
返回光滑度,只在栅格转为矢量线数据,且 SmoothMethod 不为SmoothMethod.NONE
时有效。SmoothMethod
getSmoothMethod()
返回光滑方法,只在栅格转为矢量线数据时有效。Dataset
getSourceDataset()
返回待转换或细化的数据集。long
getSpecifiedValue()
返回栅格按值转矢量时指定的栅格值。double
getSpecifiedValueTolerance()
返回栅格按值转矢量时指定的栅格值的容限。String
getTargetDatasetName()
返回结果数据集的名称。DatasetType
getTargetDatasetType()
返回结果矢量数据集类型,可以设置为点、线、面类型,只在栅格转矢量时有效。Datasource
getTargetDatasource()
返回用于存储结果数据集的数据源。String
getValueFieldName()
返回矢量数据集中存储栅格值的字段。boolean
isAllTouched()
返回线转栅格时是否转换出所有与折线接触的栅格.boolean
isThinRaster()
返回转换之前是否进行栅格细化,只在栅格转为矢量线数据时有效。void
setAllTouched(boolean isAllTouched)
设置线转栅格时是否转换出所有与折线接触的栅格。void
setBackOrNoValue(long backOrNoValue)
设置栅格的背景色或表示无值的值,只在栅格转矢量时有效。void
setBackOrNoValueTolerance(double backOrNoValueTolerance)
设置栅格背景色的容限或无值的容限,只在栅格转矢量时有效。void
setCellSize(double cellSize)
设置结果栅格数据集的单元格大小,只在矢量转栅格时有效。void
setClipRegion(GeoRegion clipRegion)
设置转换的有效区域。void
setNoValue(double noValue)
设置栅格数据集为无值,只在矢量转栅格时有效。void
setPixelFormat(PixelFormat pixelFormat)
设置结果栅格数据集的像素格式,只在矢量转栅格时有效。void
setSmoothDegree(int smoothDegree)
设置光滑度,只在栅格转为矢量线数据,且 SmoothMethod 不为SmoothMethod.NONE
时有效。void
setSmoothMethod(SmoothMethod smoothMethod)
设置光滑方法,只在栅格转为矢量线数据时有效。void
setSourceDataset(Dataset sourceDataset)
设置待转换或细化的数据集。void
setSpecifiedValue(long specifiedValue)
设置栅格按值转矢量时指定的栅格值。void
setSpecifiedValueTolerance(double specifiedValueTolerance)
设置栅格按值转矢量时指定的栅格值的容限。void
setTargetDatasetName(String targetDatasetName)
设置结果数据集的名称。void
setTargetDatasetType(DatasetType targetDatasetType)
设置结果矢量数据集类型,可以设置为点、线、面类型,只在栅格转矢量时有效。void
setTargetDatasource(Datasource targetDatasource)
设置用于存储结果数据集的数据源。void
setThinRaster(boolean thinRaster)
设置转换之前是否进行栅格细化,只在栅格转为矢量线数据时有效。void
setValueFieldName(String valueFieldName)
设置矢量数据集中存储栅格值的字段。
-
-
-
构造器详细资料
-
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.