com.supermap.realspace.spatialanalyst
类 ProfileAnalyst

java.lang.Object
  继承者 com.supermap.realspace.spatialanalyst.ProfileAnalyst

public class ProfileAnalyst
extends java.lang.Object

剖面分析类。该类提供基于地形和模型数据的剖面分析功能。

从以下版本开始:
SuperMap iObjects Java 7.0.0

方法摘要
static DatasetVector calculatePlumbProfile(Point2D startPoint, Point2D endPoint, DatasetVector[] modelDatasets, DatasetGrid surfaceGrid, Datasource targetDatasource, java.lang.String targetDatasetName)
          根据指定的切割线对地形或模型进行铅垂剖面分析,返回结果剖面线数据集。
static DatasetVector calculatePlumbProfile(Point2D startPoint, Point2D endPoint, DatasetVector[] modelDatasets, DatasetGrid surfaceGrid, Datasource targetDatasource, java.lang.String targetDatasetName, AltitudeMode altitudeMode)
           在同时有模型数据集和表面栅格输入时,该接口返回的模型剖面线会因不同的高程模式设置而有不同的上下偏移。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

calculatePlumbProfile

public static DatasetVector calculatePlumbProfile(Point2D startPoint,
                                                  Point2D endPoint,
                                                  DatasetVector[] modelDatasets,
                                                  DatasetGrid surfaceGrid,
                                                  Datasource targetDatasource,
                                                  java.lang.String targetDatasetName)
根据指定的切割线对地形或模型进行铅垂剖面分析,返回结果剖面线数据集。

垂直于水平面的面称为铅垂面。铅垂剖面分析,即沿着铅垂面的竖直方向,研究被它所切割的地形的走向,以及模型的形状、分布等。

铅垂剖面分析所使用的铅垂面由一条切割线在垂直于水平面的方向延展得到,切割线由参数 startPoint 指定的一个起点和参数 endPoint 指定的一个终点连接而成。

铅垂剖面分析的结果为一个三维线数据集,存储有结果剖面线,并且包含以下属性字段:

字段名 类型 内容
IsModel 布尔型 剖面线是否是来自于模型对象,true 表示是模型的剖面线,false 表示是地形的剖面线。
DatasetName 文本型 剖面线对应的源数据集的名称。当剖面线来自于模型对象时,此字段记录剖面线对应的模型对象所在的模型数据集的名称;当剖面线来自于地形时, 则记录对应的表面栅格数据集的名称。
ModelID 32 位整型 剖面线对应的模型对象的 ID。当剖面线来自于模型对象时,记录该模型对象的 SMID;当剖面线来自于地形时,该值为 -1。

下面展示一个铅垂剖面分析的实例。在如下图所示的场景中,加载了地形数据和 CAD 模型数据集,该模型数据集包含一些建筑物,黑色线是用于剖面分析的切割线 ,由于将线图层的高度模式设置为“贴地”,因此看起来并不是一条直线,但实际上它是一条直线段,分析时将读取它的起点和终点。

我们基于上图中的地形数据和模型数据集进行剖面分析,得到如下所示的剖面线。由于剖面线本身为三维线,因此我们将其加载到场景中, 可以清晰的了解到地形的走势 ,以及建筑的切面形状和分布。通过三维专题图,我们将表示地形的剖面线设置成棕色,表示建筑剖面的线设置为红色。此外,查看剖面线对象的节点信息 ,可以知道具体的位置和高程信息。

下图为剖面线数据集的属性表,从中可以了解剖面线对应于地形,还是来自于某个模型。

注意:

该接口使用的模型高程都是按绝对海拔高度来处理的。

参数:
startPoint - 指定的切割线的起点。
endPoint - 指定的切割线的终点。
modelDatasets - 指定的模型数据集集合。可选,但要求至少指定一个表面栅格数据集或一个模型数据集。
surfaceGrid - 指定的表面栅格数据集。可选,但要求至少指定一个表面栅格数据集或一个模型数据集。
targetDatasource - 指定的用于存储结果剖面线数据集的数据源。
targetDatasetName - 指定的结果剖面线数据集的名称。
返回:
结果剖面线数据集。
从以下版本开始:
SuperMap iObjects Java 7.0.0

calculatePlumbProfile

public static DatasetVector calculatePlumbProfile(Point2D startPoint,
                                                  Point2D endPoint,
                                                  DatasetVector[] modelDatasets,
                                                  DatasetGrid surfaceGrid,
                                                  Datasource targetDatasource,
                                                  java.lang.String targetDatasetName,
                                                  AltitudeMode altitudeMode)

在同时有模型数据集和表面栅格输入时,该接口返回的模型剖面线会因不同的高程模式设置而有不同的上下偏移。 例如,如果设置高程模式为AltitudeMode.RelativeToGround,某模型Position的Z值为5,Position所处位置的表面栅格高程为10,则该模型将整体向上偏移10,即Position处海拔为15。

参数:
startPoint - 指定的切割线的起点。
endPoint - 指定的切割线的终点。
modelDatasets - 指定的模型数据集集合。可选,但要求至少指定一个表面栅格数据集或一个模型数据集。
surfaceGrid - 指定的表面栅格数据集。可选,但要求至少指定一个表面栅格数据集或一个模型数据集。
targetDatasource - 指定的用于存储结果剖面线数据集的数据源。
targetDatasetName - 指定的结果剖面线数据集的名称。
altitudeMode - 高程模式。模型底面高程根据不同高程模式与模型Position所在位置的表面栅格高度产生关联。
返回:
结果剖面线数据集。
从以下版本开始:
SuperMap iObjects Java 7.1.0