com.supermap.analyst.spatialanalyst
类 TerrainBuilder

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

public class TerrainBuilder
extends java.lang.Object

地形构建类。该类提供了根据指定的参数构建地形以及对指定范围内DEM数据集高程值进行修改的方法(挖湖)。


方法摘要
static void addSteppedListener(SteppedListener l)
          添加一个进度条事件(SteppedEvent)的监听器。
static boolean buildLake(DatasetGrid demDataGrid, DatasetVector lakeVector, double elevation)
          挖湖,即修改面数据集区域范围内的 DEM 数据集的高程值为指定的数值。
static boolean buildLake(DatasetGrid demDataGrid, DatasetVector lakeVector, java.lang.String lakeField)
          挖湖,即修改面数据集区域范围内的 DEM 数据集的高程值为指定的字段的值。
static DatasetGrid buildTerrain(TerrainBuilderParameter parameter, Datasource targetDatasource, java.lang.String targetDatasetName)
          根据指定的地形构建参数信息创建地形。
static void removeSteppedListener(SteppedListener l)
          移除一个进度条事件(SteppedEvent)的监听器。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

buildTerrain

public static DatasetGrid buildTerrain(TerrainBuilderParameter parameter,
                                       Datasource targetDatasource,
                                       java.lang.String targetDatasetName)
根据指定的地形构建参数信息创建地形。

DEM(Digital Elevation Model,数字高程模型)主要用于描述区域地貌形态的空间分布,是地面特性为高程和海拔高程的数字地面模型(DTM),通常通过高程测量点(或从等高线中进行采样提取高程点)进行数据内插而成。此方法用于构建地形,即对具有高程信息的点或线数据集通过插值生成 DEM 栅格。

该方法的主要参数通过一个 TerrainBuilderParameter 对象来设置,通过不同的参数设置,可以实现三种方式来构建地形。

  1. 通过点数据集(即高程点)构建;
  2. 通过线数据集(即等高线)构建;
  3. 通过点数据集(即高程点)和线数据集(即等高线)共同构建。

下表列出了三种不同的地形构建方式,分别需要设置哪些参数,参数的具体含义请参见 TerrainBuilderParameter 类。

参数:
parameter - 指定的地形构建需要的参数信息。
targetDatasource - 指定的用于存储结果数据集的数据源。
targetDatasetName - 指定的结果数据集的名称。
返回:
地形创建得到的栅格数据集。
抛出:
java.lang.IllegalArgumentException - 如果参数 parameter 的 setLineDatasets 方法设置的各数据集、setPointDatasets 方法设置的各数据集的具有不同的坐标系

buildLake

public static boolean buildLake(DatasetGrid demDataGrid,
                                DatasetVector lakeVector,
                                java.lang.String lakeField)
挖湖,即修改面数据集区域范围内的 DEM 数据集的高程值为指定的字段的值。

挖湖是指根据已有的湖泊面数据,在 DEM 数据集上显示湖泊信息。如下图所示,挖湖之后,DEM 在湖泊面数据对应位置的栅格值变成指定的高程字段的值,且整个湖泊区域栅格值相同。

此外,还提供另一个重载方法 buildLake,该方法可以指定一个值统一作为湖泊面的高程值来挖湖。

参数:
demDataGrid - 指定的待挖湖的 DEM 栅格数据集。
lakeVector - 指定的湖区域,为面数据集。
lakeField - 指定的湖区域的高程字段。要求字段类型为数值型。如果指定为 null 或空字符串,或湖区域数据集中不存在指定的字段,则按照湖区域边界对应 DEM 栅格上的最小高程进行挖湖。高程值的单位与 DEM 栅格数据集的栅格值单位相同。
返回:
一个布尔值,如果成功返回 true,否则返回 false。

buildLake

public static boolean buildLake(DatasetGrid demDataGrid,
                                DatasetVector lakeVector,
                                double elevation)
挖湖,即修改面数据集区域范围内的 DEM 数据集的高程值为指定的数值。

挖湖是指根据已有的湖泊面数据,在 DEM 数据集上显示湖泊信息。如下图所示,挖湖之后,DEM 在湖泊面数据对应位置的栅格值变成指定的高程值,且整个湖泊区域栅格值相同。

此外,还提供另一个重载方法 buildLake,该方法允许指定面数据集的一个字段作为挖湖的高程值。

参数:
demDataGrid - 指定的待挖湖的 DEM 栅格数据集。
lakeVector - 指定的湖区域,为面数据集。
elevation - 指定的高程值。单位与 DEM 栅格数据集的栅格值单位相同。
返回:
一个布尔值,如果成功返回 true,否则返回 false。

addSteppedListener

public static void addSteppedListener(SteppedListener l)
添加一个进度条事件(SteppedEvent)的监听器。

参数:
l - 一个用于接收进度条事件的监听器。

removeSteppedListener

public static void removeSteppedListener(SteppedListener l)
移除一个进度条事件(SteppedEvent)的监听器。

参数:
l - 一个用于接收进度条事件的监听器。