com.supermap.mobjects.common

类 DistanceAnalyst



  • public class DistanceAnalyst
    extends Object
    距离栅格分析类。

    距离栅格分析的主要功能主要包含以下三个方面:

    1. 生成距离栅格,以及相应的方向栅格和分配栅格;

    2. 最短路径分析,该功能是在生成距离栅格的基础上进行分析;

    3. 计算两点(源点和目标点)间的最短路径,包括最小耗费路径、最短表面距离路径。

    基本概念

    1. 源:感兴趣的研究对象或地物,如学校、道路或消防栓等。
    2. 源数据集:包含源的数据集,可以为二维点、线、面数据集或栅格数据集。对于栅格数据集,要求除标识源以外的单元格为无值。
    3. 距离:包括直线距离、耗费距离和表面距离。直线距离即欧氏距离,是每一个单元格到最近源的直线距离;耗费距离是根据单元格的某个或某几个属性因子的加权得到的实际到达最近源所需的耗费值;表面距离是根据表面栅格的高程值计算出的单元格到达最近源的实际表面距离。
    4. 耗费栅格:计算最小耗费路径需要指定耗费栅格。耗费栅格用于确定经过每个单元格所需的成本。单元格的值表示经过此单元格时一个单位的耗费。例如一个表示不同地面环境中汽车前进阻力的耗费栅格,其栅格值代表经过该单元格时每前进1公里的阻力值,那么经过该单元格的总耗费为单位耗费值(即栅格值)乘以单元格大小。耗费栅格的单位可以是任何单位类型,如长度、时间、金钱等,也可以无单位,如重分级后的坡度、坡向、土地利用类型等。通常,一个实际研究涉及到的成本影响因素可能有多个,例如,规划一条新的道路,影响成本的因素可能包括修建的总长度、经过的地区的土地利用类型、坡度、距离人口聚集区的距离等,那么分析时,就需要对这些因素进行加权从而得到一个综合权重作为耗费数据。此外,需注意耗费并不能为负值。

    生成距离栅格

    生成距离栅格功能用于生成三种类型的距离栅格:

    1. 直线距离栅格,以及对应的直线方向栅格和直线分配栅格。直线距离实际上可看作以长短作为耗费,是最简单的一种耗费,例如,翻越一座山的路程耗费较小,但如果考虑时间的耗费,则可能比绕行它的时间耗费要多。详细介绍请参阅 straightDistance 方法。
    2. 耗费距离栅格,以及对应的耗费方向栅格和耗费分配栅格。详细介绍请参阅 costDistance 方法。
    3. 表面距离栅格,以及对应的表面方向栅格和表面分配栅格。详细介绍请参阅 surfaceDistance 方法。

    最短路径分析

    最短路径分析是根据目标点数据以及通过“生成距离栅格”功能生成的距离栅格和方向栅格,来计算目标到达最近的源的最短路径。提供两个方法:

    1. pathLine 方法:输入耗费距离栅格和耗费方向栅格,生成最小耗费路径;输入表面距离栅格和表面方向栅格,生成最短表面路径栅格。该方法计算出的最短路径为一个矢量线对象。
    2. costPath 方法:根据耗费距离栅格和耗费方向栅格,生成最小耗费路径。该方法提供三种不同的计算方式,并返回一个栅格数据集作为最短路径的结果。

    两点间的最短路径

    提供两种两点间最短路径的计算:

    1. 通过 costPathLine 方法依据耗费栅格计算两点间的最小耗费路径。
    2. 通过 surfacePathLine 方法依据表面栅格计算两点间的最短表面距离路径。
    • 方法详细资料

      • getAnalystSetting

        public static GridAnalystSetting getAnalystSetting()
        返回栅格分析环境设置。

        有关“栅格分析环境设置”请参见 GridAnalystSetting 类的介绍。

        返回:
        栅格分析环境设置。
      • setAnalystSetting

        public static void setAnalystSetting(GridAnalystSetting gridAnalystSetting)
        设置栅格分析环境设置。

        有关“栅格分析环境设置”请参见 GridAnalystSetting 类的介绍。

        参数:
        gridAnalystSetting - 栅格分析环境设置。
      • costPathLine

        public static Point3Ds costPathLine(Point3D sourcePoint,
                                            Point3D targetPoint,
                                            DistanceAnalystParameter parameter)
        计算2点间最短路径
        参数:
        sourcePoint - 出发点坐标
        targetPoint - 目标点坐标
        parameter - 分析参数
      • flyPathLine

        public static Point3Ds flyPathLine(Point3D sourcePoint,
                                           Point3D targetPoint,
                                           double height,
                                           DistanceAnalystParameter parameter,
                                           SteppedListener... listeners)
        计算两点间飞行路径
        参数:
        sourcePoint - 出发点坐标
        targetPoint - 目标点坐标
        parameter - 高度
        parameter - 分析参数
      • addSteppedListener

        public static void addSteppedListener(SteppedListener l)
        添加一个进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • removeSteppedListener

        public static void removeSteppedListener(SteppedListener l)
        移除一个进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。

Copyright © 2021–2024 SuperMap. All rights reserved.