com.supermap.mobjects.common

类 DistanceAnalystParameter



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

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

    说明:

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

    • 构造器详细资料

      • 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 - 耗费数据集。
        抛出:
        IllegalArgumentException - 当调用 costDistancecostPathLine 方法时,如果此对象为 null
      • getSurfaceGrid

        public DatasetGrid getSurfaceGrid()
        返回表面栅格。
        返回:
        DEM 栅格。
      • setSurfaceGrid

        public void setSurfaceGrid(DatasetGrid surfaceGrid)
        设置表面栅格。只在生成表面距离栅格(surfaceDistance 方法)和计算两点间最短表面距离路径(surfacePathLine 方法)时有效。
        参数:
        surfaceGrid - DEM 栅格。
        抛出:
        NullPointerException - 当调用 surfaceDistancesurfacePathLine 方法时,如果此对象为 null
      • setDistanceDatasource

        @Deprecated
        public void setDistanceDatasource(Datasource distanceDatasource)
        已过时。 
      • getDirectionDatasource

        public Datasource getDirectionDatasource()
      • setDirectionDatasource

        public void setDirectionDatasource(Datasource directionDatasource)
      • getAllocationDatasource

        public Datasource getAllocationDatasource()
      • setAllocationDatasource

        public void setAllocationDatasource(Datasource allocationDatasource)
      • setOutputDatasource

        @Deprecated
        public void setOutputDatasource(Datasource outputDatasource)
        已过时。 
      • getTargetDatasource

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

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

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

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

        public String getDistanceGridName()
        返回距离栅格数据集的名称。
        返回:
        距离栅格数据集的名称。
      • setDistanceGridName

        public void setDistanceGridName(String distanceGridName)
        设置距离栅格数据集的名称,是生成距离栅格的必设参数。
        参数:
        distanceGridName - 距离栅格数据集的名称。
        抛出:
        IllegalArgumentException - 当调用 straightDistancecostDistancesurfaceDistance 方法时,如果此对象为 null
      • getDirectionGridName

        public String getDirectionGridName()
        返回方向栅格数据集的名称。
        返回:
        方向栅格数据集的名称。
      • setDirectionGridName

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

        public String getAllocationGridName()
        返回分配栅格数据集的名称。
        返回:
        分配栅格数据集的名称。
      • setAllocationGridName

        public void setAllocationGridName(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 - 最大上坡角度。
        抛出:
        IllegalArgumentException - 如果指定为一个小于 0 的值
      • getMaxDownslopeDegree

        public double getMaxDownslopeDegree()
        返回最大下坡角度。单位为度,取值范围为大于或等于0。只在生成表面距离栅格(surfaceDistance 方法)和计算两点间最短表面距离路径(surfacePathLine 方法)时有效。
        返回:
        计算两点(源和目标)间最短路径时的最大下坡角度。
        默认值:
        默认值为 90 度,即不考虑下坡角度。
      • setMaxDownslopeDegree

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

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

        参数:
        value - 最大下坡角度。
        抛出:
        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 - 障碍面数据集。

Copyright © 2021–2024 SuperMap. All rights reserved.