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)
设置矢量数据集中存储栅格值的字段。
|
public ConversionAnalystParameter()
public ConversionAnalystParameter(ConversionAnalystParameter parameter)
parameter
- 指定的 ConversionParameter 对象。public double getNoValue()
public void setNoValue(double noValue)
noValue
- 栅格数据集为无值。public Dataset getSourceDataset()
public void setSourceDataset(Dataset sourceDataset)
sourceDataset
- 待转换或细化的数据集。public Datasource getTargetDatasource()
public void setTargetDatasource(Datasource targetDatasource)
注意:如果设置为 null,或者不设置,则结果数据集会存储到源数据集所在的数据源中。如果没有设置该方法,但在栅格分析环境中设置了相关参数,则存储到该参数所指的数据源中。
targetDatasource
- 用于存储结果数据集的数据源。public String getTargetDatasetName()
public void setTargetDatasetName(String targetDatasetName)
targetDatasetName
- 结果数据集的名称。public String getValueFieldName()
详细介绍请参见 setValueFieldName
方法。
public void setValueFieldName(String valueFieldName)
矢量转栅格时,该字段为矢量数据集中的一个字段,结果栅格数据集的栅格值从该字段取得。不建议使用系统字段,因为系统会先根据有效区域对矢量数据进行裁剪,之后再转为栅格,由于裁剪后系统字段的值可能发生变化,从而导致结果栅格的值与原矢量数据系统字段的值不一致。如果必须使用系统字段的值,可以考虑将该字段的值拷贝到新的字段中。
栅格转矢量时,该字段为结果矢量数据集的值字段,用来保存栅格数据集的栅格值。注意,该字段必须为非系统字段。
valueFieldName
- 矢量数据集中存储栅格值的字段。public GeoRegion getClipRegion()
public void setClipRegion(GeoRegion clipRegion)
clipRegion
- 转换的有效区域。public DatasetType getTargetDatasetType()
DatasetType.POINT
。public void setTargetDatasetType(DatasetType targetDatasetType)
targetDatasetType
- 矢量数据集类型。public PixelFormat getPixelFormat()
PixelFormat.SINGLE
。public void setPixelFormat(PixelFormat pixelFormat)
pixelFormat
- 结果栅格数据集的像素格式。public double getCellSize()
public void setCellSize(double cellSize)
cellSize
- 结果栅格数据集的单元格大小。public long getBackOrNoValue()
public void setBackOrNoValue(long backOrNoValue)
将栅格数据转换为矢量数据时,允许用户指定一个值来标识那些不需要转换的单元格。SuperMap 支持的可转换为矢量的栅格数据有两种:栅格数据集(DatasetGrid)和影像数据集(DatasetImage)。
当被转化的栅格数据为影像数据集时,栅格值为指定的值的单元格被视为背景色,从而不参与转换。
需要注意,影像数据集中栅格值代表的是一个颜色或颜色的索引值,与其像素格式(PixelFormat
)有关。对于 BIT32、UBIT32、RGBA、RGB 和 BIT16 格式的影像数据集,其栅格值对应为 RGB 颜色,因此,如果想要将某种颜色设为背景色,为该属性设置的值应为将该颜色(RGB 值)转为 32 位整型之后的值,系统内部会根据像素格式再进行相应的转换;对于 UBIT8 和 UBIT4 格式的影像数据集,其栅格值对应的是颜色的索引值,因此,应为该属性设置的值为被视为背景色的颜色对应的索引值。
注意:还可以通过 setBackOrNoValueTolerance
方法指定一个值作为无值或背景色的容限值,栅格值在容限范围内的单元格也被视为无值或者背景色而不参与转换。
backOrNoValue
- 栅格的背景色或表示无值的值。public double getBackOrNoValueTolerance()
public void setBackOrNoValueTolerance(double backOrNoValueTolerance)
在栅格转矢量时,该方法用于配合 setBackOrNoValue
方法(指定栅格无值或者背景色)来共同确定栅格数据中哪些值不被转换。
backOrNoValueTolerance
- 栅格背景色的容限或无效值的容限。public long getSpecifiedValue()
public void setSpecifiedValue(long specifiedValue)
specifiedValue
- 指定的栅格值。public double getSpecifiedValueTolerance()
public void setSpecifiedValueTolerance(double specifiedValueTolerance)
setSpecifiedValue
方法设置了指定值后才有效。specifiedValueTolerance
- 指定的栅格值的容限。public SmoothMethod getSmoothMethod()
SmoothMethod.NONE
。public void setSmoothMethod(SmoothMethod smoothMethod)
smoothMethod
- 光滑方法。public int getSmoothDegree()
SmoothMethod.NONE
时有效。
光滑度的有效取值与光滑方法有关,当光滑方法为 B 样条法时,光滑度的值小于 2 时将不会进行光滑,采用磨角法时,光滑度的值设置为大于等于 1 时有效。光滑度的值越大,则结果矢量线的光滑度越高。
public void setSmoothDegree(int smoothDegree)
SmoothMethod.NONE
时有效。
光滑度的有效取值与光滑方法有关,光滑方法有 B 样条法和磨角法,关于这两种方法的介绍,请参见 SmoothMethod
类。
光滑方法为 B 样条法时,光滑度的有效取值为大于等于2的整数,建议取值范围为[2,10]。下图为设置不同光滑系数时的光滑效果:
光滑度的值越大,光滑度的值越大,则结果矢量线的光滑度越高。
smoothDegree
- 光滑度。public boolean isThinRaster()
public void setThinRaster(boolean thinRaster)
thinRaster
- 转换之前是否进行栅格细化。public boolean isAllTouched()
public void setAllTouched(boolean isAllTouched)
isAllTouched
- 是否转换出所有与折线接触的栅格。Copyright © 2021–2024 SuperMap. All rights reserved.