com.supermap.analyst.spatialanalyst
类 DistanceAnalystParameter

java.lang.Object
  继承者 com.supermap.analyst.spatialanalyst.DistanceAnalystParameter

public class DistanceAnalystParameter
extends java.lang.Object

距离栅格分析参数类。该类为生成距离栅格、计算两点间最短路径等距离栅格分析功能提供参数设置。

该类主要为 DistanceAnalyst 类的生成直线距离栅格(straightDistance 方法)、生成耗费距离栅格(costDistance 方法)、生成表面距离栅格(surfaceDistance 方法)和计算两点间最短路径(costPathLinesurfacePathLine 方法)提供参数设置,下表列出了各功能对应的必设参数和可选参数。

说明:

① 如果未设置结果数据源,系统会首先检查栅格分析环境中是否设置了输出数据源,如果有则存储到该数据源;如果没有,则将输入数据所在的数据源作为输出数据源。


构造方法摘要
DistanceAnalystParameter()
          默认构造函数,构造一个新的 DistanceAnalystParameter 对象。
DistanceAnalystParameter(DistanceAnalystParameter parameter)
          拷贝构造函数,根据给定的 DistanceAnalystParameter 对象构造一个与其完全相同的新对象。
 
方法摘要
 java.lang.String getAllocationGridName()
          返回分配栅格数据集的名称。
 DatasetVector getBarrierRegion()
          返回障碍面。
 double getCellSize()
          返回结果数据集的分辨率,是生成距离栅格的可选参数。
 DatasetGrid getCostGrid()
          返回耗费栅格。
 java.lang.String getDirectionGridName()
          返回方向栅格数据集的名称。
 java.lang.String getDistanceGridName()
          返回距离栅格数据集的名称。
 double getMaxDistance()
          返回生成距离栅格的最大距离,大于该距离的栅格其计算结果取无值。
 double getMaxDownslopeDegree()
          返回最大下坡角度。
 double getMaxUpslopeDegree()
          返回最大上坡角度。
 int getPathLineSmoothDegree()
          返回计算两点(源和目标)间最短路径时对结果路线进行光滑的光滑度。
 SmoothMethod getPathLineSmoothMethod()
          返回计算两点(源和目标)间最短路径时对结果路线进行光滑的方法。
 Dataset getSourceDataset()
          返回用于生成距离栅格的源数据集。
 DatasetGrid getSurfaceGrid()
          返回表面栅格。
 Datasource getTargetDatasource()
          返回用于存储结果数据集的数据源。
 void setAllocationGridName(java.lang.String allocationGridName)
          设置分配栅格数据集的名称,是生成距离栅格的可选参数。
 void setBarrierRegion(DatasetVector value)
          设置障碍面。
 void setCellSize(double cellSize)
          设置结果数据集的分辨率,是生成距离栅格的可选参数。
 void setCostGrid(DatasetGrid costGrid)
          设置耗费栅格。
 void setDirectionGridName(java.lang.String directionGridName)
          设置方向栅格数据集的名称,是生成距离栅格的可选参数。
 void setDistanceGridName(java.lang.String distanceGridName)
          设置距离栅格数据集的名称,是生成距离栅格的必设参数。
 void setMaxDistance(double maxDistance)
          设置生成距离栅格的最大距离,大于该距离的栅格其计算结果取无值。
 void setMaxDownslopeDegree(double value)
          设置最大下坡角度。
 void setMaxUpslopeDegree(double value)
          设置最大上坡角度。
 void setPathLineSmoothDegree(int value)
          设置计算两点(源和目标)间最短路径时对结果路线进行光滑的光滑度。
 void setPathLineSmoothMethod(SmoothMethod value)
          设置计算两点(源和目标)间最短路径时对结果路线进行光滑的方法。
 void setSourceDataset(Dataset sourceDataset)
          设置用于生成距离栅格的源数据集。
 void setSurfaceGrid(DatasetGrid surfaceGrid)
          设置表面栅格。
 void setTargetDatasource(Datasource outputDatasource)
          设置用于存储结果数据集的数据源。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

DistanceAnalystParameter

public DistanceAnalystParameter()
默认构造函数,构造一个新的 DistanceAnalystParameter 对象。


DistanceAnalystParameter

public DistanceAnalystParameter(DistanceAnalystParameter parameter)
拷贝构造函数,根据给定的 DistanceAnalystParameter 对象构造一个与其完全相同的新对象。

参数:
parameter - 给定的 DistanceAnalystParameter 对象。
方法详细信息

getMaxDistance

public double getMaxDistance()
返回生成距离栅格的最大距离,大于该距离的栅格其计算结果取无值。

若某个栅格单元格 A 到最近源之间的最短距离大于该值,则结果数据集中该栅格的值取无值。

返回:
生成距离栅格的最大距离。
默认值:
默认值为-1,表示不受距离限制。

setMaxDistance

public void setMaxDistance(double maxDistance)
设置生成距离栅格的最大距离,大于该距离的栅格其计算结果取无值。

若某个栅格单元格 A 到最近源之间的最短距离大于设置的值,则结果数据集中该栅格的值取无值。

参数:
maxDistance - 生成距离栅格的最大距离。

getCellSize

public double getCellSize()
返回结果数据集的分辨率,是生成距离栅格的可选参数。

返回:
结果数据集的分辨率。
默认值:

当源为矢量时,默认分辨率为 L/500,其中 L 是指源数据集的区域范围对应的矩形的对角线长度;

当源为栅格时,对于生成直线距离栅格,默认分辨率与源栅格相同;对于生成耗费距离栅格,默认分辨率与耗费栅格相同;对于生成表面距离栅格,默认分辨率与表面栅格相同。


setCellSize

public void setCellSize(double cellSize)
设置结果数据集的分辨率,是生成距离栅格的可选参数。

参数:
cellSize - 生成的结果数据集的分辨率。

getSourceDataset

public Dataset getSourceDataset()
返回用于生成距离栅格的源数据集。

返回:
用于生成距离栅格的源数据集。

setSourceDataset

public void setSourceDataset(Dataset sourceDataset)
设置用于生成距离栅格的源数据集。

源是指感兴趣的研究对象或地物,如学校、道路或消防栓等。包含源的数据集,即为源数据集。源数据集可以为点、线、面数据集,也可以为栅格数据集,栅格数据集中具有有效值的栅格为源,对于无值则视为该位置没有源。

参数:
sourceDataset - 用于生成距离栅格的源数据集。

getCostGrid

public DatasetGrid getCostGrid()
返回耗费栅格。

返回:
耗费数据集。

setCostGrid

public void setCostGrid(DatasetGrid costGrid)
设置耗费栅格。其栅格值不能为负值。只在生成耗费距离栅格(costDistance 方法)和计算两点间最小耗费路径(costPathLine 方法)时有效。

该数据集为一个栅格数据集,每个单元格的值表示经过此单元格时的单位耗费。详见 DistanceAnalyst 类的介绍。

参数:
costGrid - 耗费数据集。
抛出:
java.lang.IllegalArgumentException - 当调用 costDistancecostPathLine 方法时,如果此对象为 null

getSurfaceGrid

public DatasetGrid getSurfaceGrid()
返回表面栅格。

返回:
DEM 栅格。

setSurfaceGrid

public void setSurfaceGrid(DatasetGrid surfaceGrid)
设置表面栅格。只在生成表面距离栅格(surfaceDistance 方法)和计算两点间最短表面距离路径(surfacePathLine 方法)时有效。

参数:
surfaceGrid - DEM 栅格。
抛出:
java.lang.NullPointerException - 当调用 surfaceDistancesurfacePathLine 方法时,如果此对象为 null

getTargetDatasource

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

返回:
用于存储结果数据集的数据源。

setTargetDatasource

public void setTargetDatasource(Datasource outputDatasource)
设置用于存储结果数据集的数据源。生成距离栅格时通过该方法设置目标数据源。

如果未设置输出数据源,系统首先会检查是否设置了栅格分析环境,若分析环境中指定了输出数据源,则结果数据集将存储到该数据源中;如果未设置分析环境或分析环境中未设置输出数据源,则对于生成距离栅格,结果数据源将存储到源数据集所在的数据源中。

参数:
outputDatasource - 用于存储结果数据集的数据源。

getDistanceGridName

public java.lang.String getDistanceGridName()
返回距离栅格数据集的名称。

返回:
距离栅格数据集的名称。

setDistanceGridName

public void setDistanceGridName(java.lang.String distanceGridName)
设置距离栅格数据集的名称,是生成距离栅格的必设参数。

参数:
distanceGridName - 距离栅格数据集的名称。
抛出:
java.lang.IllegalArgumentException - 当调用 straightDistancecostDistancesurfaceDistance 方法时,如果此对象为 null

getDirectionGridName

public java.lang.String getDirectionGridName()
返回方向栅格数据集的名称。

返回:
方向栅格数据集的名称。

setDirectionGridName

public void setDirectionGridName(java.lang.String directionGridName)
设置方向栅格数据集的名称,是生成距离栅格的可选参数。如果未指定方向栅格数据集的名称,则不生成相应的方向栅格数据集。

参数:
directionGridName - 方向栅格数据集的名称。

getAllocationGridName

public java.lang.String getAllocationGridName()
返回分配栅格数据集的名称。

返回:
分配栅格数据集的名称。

setAllocationGridName

public void setAllocationGridName(java.lang.String allocationGridName)
设置分配栅格数据集的名称,是生成距离栅格的可选参数。如果未指定分配栅格数据集的名称,则不生成相应的分配栅格数据集。

参数:
allocationGridName - 分配栅格数据集的名称。

getMaxUpslopeDegree

public double getMaxUpslopeDegree()
返回最大上坡角度。单位为度,取值范围为大于或等于0。只在生成表面距离栅格(surfaceDistance 方法)和计算两点间最短表面距离路径(surfacePathLine 方法)时有效。

返回:
最大上坡角度。
默认值:
默认值为 90 度,即不考虑上坡角度。

setMaxUpslopeDegree

public void setMaxUpslopeDegree(double value)
设置最大上坡角度。单位为度,取值范围为大于或等于0。只在生成表面距离栅格(surfaceDistance 方法)和计算两点间最短表面距离路径(surfacePathLine 方法)时有效。

如果指定了最大上坡角度,则选择路线的时候会考虑地形的上坡的角度。从当前单元格行进到下一个高程更高的单元格为上坡,上坡角度即上坡方向与水平面的夹角。如果上坡角度大于给定值,则不会考虑此行进方向,即给出的路线不会经过上坡角度大于该值的区域。可想而知,可能会因为该值的设置而导致没有符合条件的路线。此外,由于坡度的表示范围为0到90度,因此,虽然可以指定为一个大于90度的值,但产生的效果与指定为90度相同,即不考虑上坡角度。

参数:
value - 最大上坡角度。
抛出:
java.lang.IllegalArgumentException - 如果指定为一个小于 0 的值

getMaxDownslopeDegree

public double getMaxDownslopeDegree()
返回最大下坡角度。单位为度,取值范围为大于或等于0。只在生成表面距离栅格(surfaceDistance 方法)和计算两点间最短表面距离路径(surfacePathLine 方法)时有效。

返回:
计算两点(源和目标)间最短路径时的最大下坡角度。
默认值:
默认值为 90 度,即不考虑下坡角度。

setMaxDownslopeDegree

public void setMaxDownslopeDegree(double value)
设置最大下坡角度。单位为度,取值范围为大于或等于0。只在生成表面距离栅格(surfaceDistance 方法)和计算两点间最短表面距离路径(surfacePathLine 方法)时有效。

如果指定了最大下坡角度,则选择路线的时候会考虑地形的下坡的角度。从当前单元格行进到下一个高程小于当前高程的单元格为下坡,下坡角度即下坡方向与水平面的夹角。如果下坡角度大于给定值,则不会考虑此行进方向,即给出的路线不会经过下坡角度大于该值的区域。可想而知,可能会因为该值的设置而导致没有符合条件的路线。此外,由于坡度的表示范围为0到90度,因此,虽然可以指定为一个大于90度的值,但产生的效果与指定为90度相同,即不考虑下坡角度。

参数:
value - 最大下坡角度。
抛出:
java.lang.IllegalArgumentException - 如果指定为一个小于 0 的值

getPathLineSmoothMethod

public SmoothMethod getPathLineSmoothMethod()
返回计算两点(源和目标)间最短路径时对结果路线进行光滑的方法。

返回:
计算两点(源和目标)间最短路径时对结果路线进行光滑的方法。
默认值:
默认值为 SmoothMethod.NONE,即不进行光滑。

setPathLineSmoothMethod

public void setPathLineSmoothMethod(SmoothMethod value)
设置计算两点(源和目标)间最短路径时对结果路线进行光滑的方法。

参数:
value - 计算两点(源和目标)间最短路径时对结果路线进行光滑的方法。

getPathLineSmoothDegree

public int getPathLineSmoothDegree()
返回计算两点(源和目标)间最短路径时对结果路线进行光滑的光滑度。

返回:
计算两点(源和目标)间最短路径时对结果路线进行光滑的光滑度。
默认值:
默认值为 0。

setPathLineSmoothDegree

public void setPathLineSmoothDegree(int value)
设置计算两点(源和目标)间最短路径时对结果路线进行光滑的光滑度。当 setPathLineSmoothMethod 方法设置为 SmoothMethod.NONE 以外的值时才有效。

光滑度的取值与光滑方法有关,具体内容可参阅 ConversionAnalystParameter 类的 setSmoothDegree 方法。

参数:
value - 计算两点(源和目标)间最短路径时对结果路线进行光滑的光滑度。

getBarrierRegion

public DatasetVector getBarrierRegion()
返回障碍面。

返回:
障碍面数据集。

setBarrierRegion

public void setBarrierRegion(DatasetVector value)
设置障碍面。在计算两点间最短路径时使用,分析时将绕过该障碍面。

参数:
value - 障碍面数据集。