com.supermap.mobjects.common
类 DistanceAnalyst
- java.lang.Object
-
- com.supermap.mobjects.common.DistanceAnalyst
-
public class DistanceAnalyst extends Object
距离栅格分析类。距离栅格分析的主要功能主要包含以下三个方面:
1. 生成距离栅格,以及相应的方向栅格和分配栅格;
2. 最短路径分析,该功能是在生成距离栅格的基础上进行分析;
3. 计算两点(源点和目标点)间的最短路径,包括最小耗费路径、最短表面距离路径。
基本概念
- 源:感兴趣的研究对象或地物,如学校、道路或消防栓等。
- 源数据集:包含源的数据集,可以为二维点、线、面数据集或栅格数据集。对于栅格数据集,要求除标识源以外的单元格为无值。
- 距离:包括直线距离、耗费距离和表面距离。直线距离即欧氏距离,是每一个单元格到最近源的直线距离;耗费距离是根据单元格的某个或某几个属性因子的加权得到的实际到达最近源所需的耗费值;表面距离是根据表面栅格的高程值计算出的单元格到达最近源的实际表面距离。
- 耗费栅格:计算最小耗费路径需要指定耗费栅格。耗费栅格用于确定经过每个单元格所需的成本。单元格的值表示经过此单元格时一个单位的耗费。例如一个表示不同地面环境中汽车前进阻力的耗费栅格,其栅格值代表经过该单元格时每前进1公里的阻力值,那么经过该单元格的总耗费为单位耗费值(即栅格值)乘以单元格大小。耗费栅格的单位可以是任何单位类型,如长度、时间、金钱等,也可以无单位,如重分级后的坡度、坡向、土地利用类型等。通常,一个实际研究涉及到的成本影响因素可能有多个,例如,规划一条新的道路,影响成本的因素可能包括修建的总长度、经过的地区的土地利用类型、坡度、距离人口聚集区的距离等,那么分析时,就需要对这些因素进行加权从而得到一个综合权重作为耗费数据。此外,需注意耗费并不能为负值。
生成距离栅格
生成距离栅格功能用于生成三种类型的距离栅格:
- 直线距离栅格,以及对应的直线方向栅格和直线分配栅格。直线距离实际上可看作以长短作为耗费,是最简单的一种耗费,例如,翻越一座山的路程耗费较小,但如果考虑时间的耗费,则可能比绕行它的时间耗费要多。详细介绍请参阅
straightDistance
方法。 - 耗费距离栅格,以及对应的耗费方向栅格和耗费分配栅格。详细介绍请参阅
costDistance
方法。 - 表面距离栅格,以及对应的表面方向栅格和表面分配栅格。详细介绍请参阅
surfaceDistance
方法。
最短路径分析
最短路径分析是根据目标点数据以及通过“生成距离栅格”功能生成的距离栅格和方向栅格,来计算目标到达最近的源的最短路径。提供两个方法:
pathLine
方法:输入耗费距离栅格和耗费方向栅格,生成最小耗费路径;输入表面距离栅格和表面方向栅格,生成最短表面路径栅格。该方法计算出的最短路径为一个矢量线对象。costPath
方法:根据耗费距离栅格和耗费方向栅格,生成最小耗费路径。该方法提供三种不同的计算方式,并返回一个栅格数据集作为最短路径的结果。
两点间的最短路径
提供两种两点间最短路径的计算:
- 通过
costPathLine
方法依据耗费栅格计算两点间的最小耗费路径。 - 通过
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
- 分析参数
-
costPathLine
public static Point3Ds costPathLine(Point3D sourcePoint, Point3D targetPoint, DistanceAnalystParameter parameter, SteppedListener... listeners)
计算2点间最短路径- 参数:
sourcePoint
- 出发点坐标targetPoint
- 目标点坐标parameter
- 分析参数
-
surfacePathLine
public static Point3Ds surfacePathLine(Point3D sourcePoint, Point3D targetPoint, DistanceAnalystParameter parameter)
-
surfacePathLine
public static Point3Ds surfacePathLine(Point3D sourcePoint, Point3D targetPoint, DistanceAnalystParameter parameter, SteppedListener... listeners)
计算两点间表面最短路径- 参数:
sourcePoint
- 出发点坐标targetPoint
- 目标点坐标parameter
- 分析参数
-
flyPathLine
public static Point3Ds flyPathLine(Point3D sourcePoint, Point3D targetPoint, double height, DistanceAnalystParameter parameter, SteppedListener... listeners)
计算两点间飞行路径- 参数:
sourcePoint
- 出发点坐标targetPoint
- 目标点坐标parameter
- 高度parameter
- 分析参数
-
getPointsCount
public static int getPointsCount(Point3D sourcePoint, Point3D targetPoint, DistanceAnalystParameter 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.