com.supermap.analyst.spatialanalyst
类 SurfaceAnalyst

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

public class SurfaceAnalyst
extends java.lang.Object

表面分析类。该类用于从表面栅格数据、具有高程信息的点数据中提取等值线或等值面。

表面分析类的功能包括:

  1. 从栅格数据集中提取等值线;
  2. 从栅格数据集中提取等值面;
  3. 从点数据中提取等值线;
  4. 从点数据中提取等值面。
1.从栅格数据中提取等值线

等值线是由一系列具有相同值的点连接而成的光滑曲线或折线,如等高线、等温线。等值线的分布反映了栅格表面上值的变化,等值线分布越密集的地方, 表示栅格表面值的变化比较剧烈,例如,如果为等高线,则越密集,坡度越陡峭,反之坡度越平缓。通过提取等值线,可以找到高程、温度、降水等的值相同的位置, 同时等值线的分布状况也可以显示出变化的陡峭和平缓区。

如下所示,上图为某个区域的 DEM 栅格数据,下图是从上图中提取的等高线。DEM 栅格数据的高程信息是存储在每一个栅格单元中的,栅格是有大小的,栅格的大小取决于栅格数据的分辨率 ,即每一个栅格单元代表实际地面上的相应地块的大小,因此,栅格数据不能很精确的反应每一位置上的高程信息 ,而矢量数据在这方面相对具有很大的优势,因此,从栅格数据中提取等高线 ,把栅格数据变成矢量数据,就可以突出显示数据的细节部分,便于分析,例如,从等高线数据中可以明显的区分地势的陡峭与舒缓的部位,可以区分出山脊山谷。

2.从栅格数据中提取等值面

等值面是由相邻的等值线封闭组成的面。等值面的变化可以很直观的表示出相邻等值线之间的变化,诸如高程、温度、降水、污染或大气压力等用等值面来表示是非常直观、 有效的。等值面分布的效果与等值线的分布相同,也是反映了栅格表面上的变化,等值面分布越密集的地方,表示栅格表面值有较大的变化,反之则表示栅格表面值变化较少; 等值面越窄的地方,表示栅格表面值有较大的变化,反之则表示栅格表面值变化较少。

如下所示,左图为某个区域的 DEM 栅格数据,右图为提取的等值面,从等值面数据中可以明显的分析出地形的起伏变化,等值面越密集, 越狭窄的地方表示地势越陡峭,反之,等值面越稀疏,较宽的地方表示地势较舒缓,变化较小。

3.从点数据中提取等值线

点数据中的点是分散分布,点数据能够很好的表现位置信息,但对于点本身的其他属性信息却表现不出来,例如,已经获取了某个研究区域的大量采样点的高程信息,如下所示 (上图),从图上并不能看出地势高低起伏的趋势,看不出哪里地势陡峭、哪里地形平坦,如果我们运用等值线的原理,将这些点数据所蕴含的信息以等值线的形式表现出来, 即将相邻的具有相同高程值的点连接起来 ,形成下面下图所示的等高线图,那么关于这个区域的地形信息就明显的表现出来了。不同的点数据提取的等值线具有不同的含义,主要依据点数据多代表的信息而定 ,如果点的值代表温度,那么提取的等值线就是等温线;如果点的值代表雨量,那么提取的等值线就是等降水量线,等等。

4.从点数据中提取等值面

如下所示,上图为存储了高程信息的点数据集,下图为从上图点数据集中提取的等值面,从等值面数据中可以明显的分析出地形的起伏变化,等值面越密集, 越狭窄的地方表示地势越陡峭,反之,等值面越稀疏,较宽的地方表示地势较舒缓,变化较小。

注意:

从点数据(点数据集/记录集/三维点集合)中提取等值线(面)时,插值得出的中间结果栅格的分辨率如果太小,会导致提取等值线(面)失败。这里提供一个判断方法:使用点数据的 Bounds 的长和宽分别除以设置的分辨率,也就是中间结果栅格的行列数,如果行列数任何一个大于10000,即认为分辨率设置的过小了,此时系统会抛出异常。


方法摘要
static void addSteppedListener(SteppedListener l)
          添加一个进度条事件(SteppedEvent)的监听器。
static GeoLine[] extractIsoline(SurfaceExtractParameter parameter, DatasetGrid extractedGrid)
          用于从栅格数据集中提取等值线。
static DatasetVector extractIsoline(SurfaceExtractParameter parameter, DatasetGrid extractedGrid, Datasource outputDatasource, java.lang.String outputDatasetName)
          用于从栅格数据集中提取等值线,并将结果保存为数据集。
static DatasetVector extractIsoline(SurfaceExtractParameter parameter, DatasetGrid extractedGrid, Datasource outputDatasource, java.lang.String outputDatasetName, GeoRegion clipRegion)
          用于从栅格数据集中提取等值线,并将结果保存为数据集。
static GeoLine[] extractIsoline(SurfaceExtractParameter parameter, DatasetGrid extractedGrid, GeoRegion clipRegion)
          用于从栅格数据集中提取等值线。
static DatasetVector extractIsoline(SurfaceExtractParameter parameter, DatasetVector extractedPoint, java.lang.String zValueFieldName, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从点数据集中提取等值线,并将结果保存为数据集。
static GeoLine[] extractIsoline(SurfaceExtractParameter parameter, DatasetVector extractedPoint, java.lang.String zValueFieldName, double resolution, GeoRegion clipRegion)
          用于从点数据集中提取等值线。
static DatasetVector extractIsoline(SurfaceExtractParameter parameter, DatasetVector extractedPoint, java.lang.String zValueFieldName, TerrainInterpolateType terrainInterpolateType, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从点数据集中提取等值线,并将结果保存为数据集。
static GeoLine[] extractIsoline(SurfaceExtractParameter parameter, DatasetVector extractedPoint, java.lang.String zValueFieldName, TerrainInterpolateType terrainInterpolateType, double resolution, GeoRegion clipRegion)
          用于从点数据集中提取等值线。
static DatasetVector extractIsoline(SurfaceExtractParameter parameter, Point3Ds extractedPoints, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从三维点集合中提取等值线,并将结果保存为数据集。
static GeoLine[] extractIsoline(SurfaceExtractParameter parameter, Point3Ds extractedPoints, double resolution, GeoRegion clipRegion)
          用于从三维点集合中提取等值线。
static DatasetVector extractIsoline(SurfaceExtractParameter parameter, Point3Ds extractedPoints, TerrainInterpolateType terrainInterpolateType, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从三维点集合中提取等值线,并将结果保存为数据集。
static GeoLine[] extractIsoline(SurfaceExtractParameter parameter, Point3Ds extractedPoints, TerrainInterpolateType terrainInterpolateType, double resolution, GeoRegion clipRegion)
          用于从三维点集合中提取等值线。
static DatasetVector extractIsoline(SurfaceExtractParameter parameter, Recordset extractedPointRecordset, java.lang.String zValueFieldName, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从记录集中提取等值线,并将结果保存为数据集。
static GeoLine[] extractIsoline(SurfaceExtractParameter parameter, Recordset extractedPointRecordset, java.lang.String zValueFieldName, double resolution, GeoRegion clipRegion)
          用于从记录集中提取等值线。
static DatasetVector extractIsoline(SurfaceExtractParameter parameter, Recordset extractedPointRecordset, java.lang.String zValueFieldName, TerrainInterpolateType terrainInterpolateType, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从记录集中提取等值线,并将结果保存为数据集。
static GeoLine[] extractIsoline(SurfaceExtractParameter parameter, Recordset extractedPointRecordset, java.lang.String zValueFieldName, TerrainInterpolateType terrainInterpolateType, double resolution, GeoRegion clipRegion)
          用于从记录集中提取等值线。
static IsoLineResult[] extractIsolineGeometry(SurfaceExtractParameter parameter, DatasetGrid extractedGrid, Datasource targetDatasource, java.lang.String targetDatasetName, DatasetVector barrierDataset, SteppedListener... listeners)
          用于从栅格数据集中提取等值线。
static IsoLineResult[] extractIsolineGeometry(SurfaceExtractParameter parameter, DatasetGrid extractedGrid, Datasource targetDatasource, java.lang.String targetDatasetName, GeoRegion clipRegion, DatasetVector barrierDataset, SteppedListener... listeners)
          用于从栅格数据集中提取等值线。
static IsoLineResult[] extractIsolineGeometry(SurfaceExtractParameter parameter, DatasetGrid extractedGrid, GeoRegion clipRegion)
          用于从栅格数据集中提取等值线。
static DatasetVector extractIsoregion(SurfaceExtractParameter parameter, DatasetGrid extractedGrid, Datasource outputDatasource, java.lang.String outputDatasetName, GeoRegion clipRegion)
          用于从栅格数据集中提取等值面,并将结果保存为数据集。
static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter, DatasetGrid extractedGrid, GeoRegion clipRegion)
          用于从栅格数据集中提取等值面。
static DatasetVector extractIsoregion(SurfaceExtractParameter parameter, DatasetVector extractedPoint, java.lang.String zValueFieldName, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从点数据集中提取等值面,并将结果保存为数据集。
static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter, DatasetVector extractedPoint, java.lang.String zValueFieldName, double resolution, GeoRegion clipRegion)
          用于从点数据集中提取等值面。
static DatasetVector extractIsoregion(SurfaceExtractParameter parameter, DatasetVector extractedPoint, java.lang.String zValueFieldName, TerrainInterpolateType terrainInterpolateType, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从点数据集中提取等值面,并将结果保存为数据集。
static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter, DatasetVector extractedPoint, java.lang.String zValueFieldName, TerrainInterpolateType terrainInterpolateType, double resolution, GeoRegion clipRegion)
          用于从点数据集中提取等值面。
static DatasetVector extractIsoregion(SurfaceExtractParameter parameter, Point3Ds extractedPoints, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从三维点集合中提取等值面,并将结果保存为数据集。
static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter, Point3Ds extractedPoints, double resolution, GeoRegion clipRegion)
          用于从三维点集合中提取等值面。
static DatasetVector extractIsoregion(SurfaceExtractParameter parameter, Point3Ds extractedPoints, TerrainInterpolateType terrainInterpolateType, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从三维点集合中提取等值面,并将结果保存为数据集。
static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter, Point3Ds extractedPoints, TerrainInterpolateType terrainInterpolateType, double resolution, GeoRegion clipRegion)
          用于从三维点集合中提取等值面。
static DatasetVector extractIsoregion(SurfaceExtractParameter parameter, Recordset extractedPointRecrodset, java.lang.String zValueFieldName, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从点记录集中提取等值面,并将结果保存为数据集。
static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter, Recordset extractedPointRecordset, java.lang.String zValueFieldName, double resolution, GeoRegion clipRegion)
          用于从点记录集中提取等值面。
static DatasetVector extractIsoregion(SurfaceExtractParameter parameter, Recordset extractedPointRecrodset, java.lang.String zValueFieldName, TerrainInterpolateType terrainInterpolateType, Datasource outputDatasource, java.lang.String outputDatasetName, double resolution, GeoRegion clipRegion)
          用于从记录集中提取等值面,并将结果保存为数据集。
static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter, Recordset extractedPointRecordset, java.lang.String zValueFieldName, TerrainInterpolateType terrainInterpolateType, double resolution, GeoRegion clipRegion)
          用于从记录集中提取等值面。
static IsoRegionResult[] extractIsoregionGeometry(SurfaceExtractParameter parameter, DatasetGrid extractedGrid, GeoRegion clipRegion)
          用于从栅格数据集中提取等值面。
static void removeSteppedListener(SteppedListener l)
          移除一个进度条事件(SteppedEvent)的监听器。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

addSteppedListener

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

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

removeSteppedListener

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

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

extractIsoline

public static GeoLine[] extractIsoline(SurfaceExtractParameter parameter,
                                       DatasetGrid extractedGrid)
用于从栅格数据集中提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格数据集。
返回:
提取等值线得到的线集合。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, DatasetGrid, Datasource, String) 方法的示例。

extractIsoline

public static GeoLine[] extractIsoline(SurfaceExtractParameter parameter,
                                       DatasetGrid extractedGrid,
                                       GeoRegion clipRegion)
用于从栅格数据集中提取等值线。该方法可以提取某个特定区域的等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格数据集。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线集合。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, DatasetGrid, Datasource, String) 方法的示例。

extractIsolineGeometry

public static IsoLineResult[] extractIsolineGeometry(SurfaceExtractParameter parameter,
                                                     DatasetGrid extractedGrid,
                                                     GeoRegion clipRegion)
用于从栅格数据集中提取等值线。该方法可以提取某个特定区域的等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格数据集。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
栅格提等值线结果对象集合。如果提取失败则返回 null。

extractIsolineGeometry

public static IsoLineResult[] extractIsolineGeometry(SurfaceExtractParameter parameter,
                                                     DatasetGrid extractedGrid,
                                                     Datasource targetDatasource,
                                                     java.lang.String targetDatasetName,
                                                     GeoRegion clipRegion,
                                                     DatasetVector barrierDataset,
                                                     SteppedListener... listeners)
用于从栅格数据集中提取等值线。该方法可以通过设置裁剪面提取特定区域的等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格数据集。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
barrierDataset - 指定的障碍线数据集。
listeners - 用于接收进度条事件的监听器。
targetDatasource - 指定的目标数据源。
targetDatasetName - 指定的目标数据集名称。
返回:
栅格提等值线结果对象集合。如果提取失败则返回 null。

extractIsolineGeometry

public static IsoLineResult[] extractIsolineGeometry(SurfaceExtractParameter parameter,
                                                     DatasetGrid extractedGrid,
                                                     Datasource targetDatasource,
                                                     java.lang.String targetDatasetName,
                                                     DatasetVector barrierDataset,
                                                     SteppedListener... listeners)
用于从栅格数据集中提取等值线。该方法可以通过设置障碍线提取带断层约束的等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格数据集。
barrierDataset - 指定的障碍线数据集。
listeners - 用于接收进度条事件的监听器。
targetDatasource - 指定的目标数据源。
targetDatasetName - 指定的目标数据集名称。
返回:
栅格提等值线结果对象集合。如果提取失败则返回 null。

extractIsoline

public static DatasetVector extractIsoline(SurfaceExtractParameter parameter,
                                           DatasetGrid extractedGrid,
                                           Datasource outputDatasource,
                                           java.lang.String outputDatasetName)
用于从栅格数据集中提取等值线,并将结果保存为数据集。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格数据集。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的结果数据集的名称。
返回:
提取得到的等值线数据集。如果提取失败则返回 null。
示例:
以下代码示范了如何从栅格数据集中提取等值线。
 public DatasetVector extractIsolineFromDatasetGrid(
                DatasetGrid sourceDatasetGrid, Datasource outputDatasource) {
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoline";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //设置表面分析提取操作参数
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setDatumValue(300);
        surfaceExtractParameter.setInterval(200);
        surfaceExtractParameter.setSmoothness(3);
        surfaceExtractParameter.setSmoothMethod(SmoothMethod.BSPLINE);
 
        //从栅格数据集中提取等值线
        DatasetVector resultIsoline = SurfaceAnalyst.extractIsoline(
                        surfaceExtractParameter, sourceDatasetGrid, outputDatasource,
                        outputDatasetName);
 
        return resultIsoline;
 }
 

extractIsoline

public static DatasetVector extractIsoline(SurfaceExtractParameter parameter,
                                           DatasetGrid extractedGrid,
                                           Datasource outputDatasource,
                                           java.lang.String outputDatasetName,
                                           GeoRegion clipRegion)
用于从栅格数据集中提取等值线,并将结果保存为数据集。该方法可以提取某个特定区域的等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格数据集。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的提取结果数据集的名称。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的数据集。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, DatasetGrid, Datasource, String) 方法的示例。

extractIsoline

public static DatasetVector extractIsoline(SurfaceExtractParameter parameter,
                                           DatasetVector extractedPoint,
                                           java.lang.String zValueFieldName,
                                           Datasource outputDatasource,
                                           java.lang.String outputDatasetName,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从点数据集中提取等值线,并将结果保存为数据集。方法的实现原理类似“从点数据集中提取等值线”的方法,不同之处在于,这里的操作对象是点数据集,因此, 实现的过程是先对点数据集中的点数据使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),然后从栅格数据集中提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoint - 指定的待提取的点数据集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值线时,将使用该字段中的值,对点数据集进行插值分析。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的提取结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线数据集。如果提取失败则返回 null。
示例:
示例一:以下代码示范了如何从一个二维点数据集,通过指定基准值(DatumValue)和等值距(Interval)来提取等值线。其中,“Elevation”为该点数据集的高程字段。
 public DatasetVector extractIsolineFromDatasetVector(
                DatasetVector sourceDataserVector, Datasource outputDatasource) {
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoline";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //设置表面分析提取操作参数
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setDatumValue(300);
        surfaceExtractParameter.setInterval(200);
 
        //从二维点数据集中提取等值线
        DatasetVector resultIsoline = SurfaceAnalyst.extractIsoline(
                        surfaceExtractParameter, sourceDataserVector, "Elevation",
                        outputDatasource, outputDatasetName, 3000, null);
 
        return resultIsoline;
 }
 
示例二:以下代码示范了如何从二维矢量点数据集,通过指定 Z 值集合(ExpectedZValues)来提取等值线。其中,“Elevation”为该点数据集的高程字段。
 public DatasetVector extractIsolineFromDatasetVectorbyZValue(
                DatasetVector sourceDataserVector, Datasource outputDatasource) {
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoline";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //设置表面分析提取操作参数
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setExpectedZValues(new double[] { 100, 600, 1100 });
 
        //从二维点数据集中提取等值线
        DatasetVector resultIsoline = SurfaceAnalyst.extractIsoline(
                        surfaceExtractParameter, sourceDataserVector, "Elevation",
                        outputDatasource, outputDatasetName, 3000, null);
 
        return resultIsoline;
 }
 

extractIsoline

public static GeoLine[] extractIsoline(SurfaceExtractParameter parameter,
                                       DatasetVector extractedPoint,
                                       java.lang.String zValueFieldName,
                                       double resolution,
                                       GeoRegion clipRegion)
用于从点数据集中提取等值线。方法的实现原理是先对点数据集使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoint - 指定的待提取的点数据集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值线时,将使用该字段中的值,对点数据集进行插值分析。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线集合。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, DatasetVector, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoline

public static DatasetVector extractIsoline(SurfaceExtractParameter parameter,
                                           DatasetVector extractedPoint,
                                           java.lang.String zValueFieldName,
                                           TerrainInterpolateType terrainInterpolateType,
                                           Datasource outputDatasource,
                                           java.lang.String outputDatasetName,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从点数据集中提取等值线,并将结果保存为数据集。方法的实现原理是先对点数据集进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),然后从栅格数据集提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoint - 指定的待提取的点数据集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值线时,将使用该字段中的值,对点记录集进行插值分析。
terrainInterpolateType - 指定的地形插值类型。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的提取结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取得到的等值线数据集。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, DatasetVector, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoline

public static GeoLine[] extractIsoline(SurfaceExtractParameter parameter,
                                       DatasetVector extractedPoint,
                                       java.lang.String zValueFieldName,
                                       TerrainInterpolateType terrainInterpolateType,
                                       double resolution,
                                       GeoRegion clipRegion)
用于从点数据集中提取等值线。方法的实现原理是先对点数据集进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),然后从栅格数据集提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoint - 指定的待提取的点数据集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值线时,将使用该字段中的值,对点数据集进行插值分析。
terrainInterpolateType - 指定的地形插值类型。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线集合。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, DatasetVector, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoline

public static DatasetVector extractIsoline(SurfaceExtractParameter parameter,
                                           Point3Ds extractedPoints,
                                           Datasource outputDatasource,
                                           java.lang.String outputDatasetName,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从三维点集合中提取等值线,并将结果保存为数据集。方法的实现原理是先利用点集合中存储的三维信息(高程或者温度等),也就是除了点的坐标信息的数据, 对点数据使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),然后从栅格数据集中提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoints - 指定的待提取等值线的点串,该点串中的点是三维点,每一个点存储了 X,Y 坐标信息和只有一个三维度的信息(例如:高程信息等)。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线数据集。如果提取失败则返回 null。
示例:
以下代码示范了如何从三维点集合中提取等值线。
 public DatasetVector extractIsolineFromPoint3Ds(Datasource outputDatasource) {
        Point3D[] arrayPoint3D = new Point3D[8];
        arrayPoint3D[0] = new Point3D(1, 1, 2);
        arrayPoint3D[1] = new Point3D(1, 2, 5);
        arrayPoint3D[2] = new Point3D(2, 2, 7);
        arrayPoint3D[3] = new Point3D(2, 4, 6);
        arrayPoint3D[4] = new Point3D(3, 1, 10);
        arrayPoint3D[5] = new Point3D(3, 3, 4);
        arrayPoint3D[6] = new Point3D(4, 1, 9);
        arrayPoint3D[7] = new Point3D(4, 3, 11);
 
        //构建一个三维点集合
        Point3Ds point3Ds = new Point3Ds();
        point3Ds.addRange(arrayPoint3D);
 
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setDatumValue(1);
        surfaceExtractParameter.setInterval(3);
        surfaceExtractParameter.setSmoothMethod(SmoothMethod.BSPLINE);
        surfaceExtractParameter.setSmoothness(5);
 
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoline";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //从三维点集合提取等值线
        DatasetVector resultIsoline = SurfaceAnalyst.extractIsoline(
                        surfaceExtractParameter, point3Ds, outputDatasource,
                        outputDatasetName, 1, null);
 
        return resultIsoline;
 }
 

extractIsoline

public static DatasetVector extractIsoline(SurfaceExtractParameter parameter,
                                           Point3Ds extractedPoints,
                                           TerrainInterpolateType terrainInterpolateType,
                                           Datasource outputDatasource,
                                           java.lang.String outputDatasetName,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从三维点集合中提取等值线,并将结果保存为数据集。方法的实现原理是先利用点集合中存储的三维信息(高程或者温度等),也就是除了点的坐标信息的数据, 对点数据进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),然后从栅格数据集中提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoints - 指定的待提取等值线的点串,该点串中的点是三维点,每一个点存储了 X,Y 坐标信息和只有一个三维度的信息(例如:高程信息等)。
terrainInterpolateType - 指定的地形插值类型。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线数据集。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, Point3Ds, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoline

public static GeoLine[] extractIsoline(SurfaceExtractParameter parameter,
                                       Point3Ds extractedPoints,
                                       double resolution,
                                       GeoRegion clipRegion)
用于从三维点集合中提取等值线。方法的实现原理是先利用点集合中存储的三维信息(高程或者温度等),也就是除了点的坐标信息的数据, 对点数据使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为浮点型),然后从栅格数据集中提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoints - 指定的待提取等值线的点串,该点串中的点是三维点,每一个点存储了 X,Y 坐标信息和只有一个三维度的信息(例如:高程信息等)。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线集合。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, Point3Ds, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoline

public static GeoLine[] extractIsoline(SurfaceExtractParameter parameter,
                                       Point3Ds extractedPoints,
                                       TerrainInterpolateType terrainInterpolateType,
                                       double resolution,
                                       GeoRegion clipRegion)
用于从三维点集合中提取等值线。方法的实现原理是先利用点集合中存储的三维信息(高程或者温度等),也就是除了点的坐标信息的数据, 对点数据进行插值分析(可以设置插值方法),得到栅格数据集(中间结果数据集),然后从栅格数据集中提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoints - 指定的待提取等值线的点串,该点串中的点是三维点,每一个点存储了 X,Y 坐标信息和只有一个三维度的信息(例如:高程信息等)。
terrainInterpolateType - 指定的地形插值类型。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线集合。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, Point3Ds, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoline

public static DatasetVector extractIsoline(SurfaceExtractParameter parameter,
                                           Recordset extractedPointRecordset,
                                           java.lang.String zValueFieldName,
                                           Datasource outputDatasource,
                                           java.lang.String outputDatasetName,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从记录集中提取等值线,并将结果保存为数据集。方法的实现原理类似“从点数据集中提取等值线”的方法,不同之处在于,这里的操作对象是记录集,因此,实现的过程是先对点数据集中的点数据使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),然后从栅格数据集中提取等值线。

参数:
parameter - 指定的提取等值线操作需要的参数。
extractedPointRecordset - 指定的待提取的记录集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值线时,将使用该字段中的值,对记录集中的点数据进行插值分析。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线数据集。如果提取失败则返回 null。
示例:
以下代码示范了如何从点记录集中提取等值线。其中,“Elevation”为该点记录集中点数据的高程字段。
 public DatasetVector extractIsolineFromRecordset(Recordset sourceRecordset,
                Datasource outputDatasource) {
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoline";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //设置表面分析提取操作参数
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setDatumValue(300);
        surfaceExtractParameter.setInterval(200);
 
        //从点记录集中提取等值线
        DatasetVector resultIsoline = SurfaceAnalyst.extractIsoline(
                        surfaceExtractParameter, sourceRecordset, "Elevation",
                        outputDatasource, outputDatasetName, 3000, null);
 
        return resultIsoline;
 }
 

extractIsoline

public static GeoLine[] extractIsoline(SurfaceExtractParameter parameter,
                                       Recordset extractedPointRecordset,
                                       java.lang.String zValueFieldName,
                                       double resolution,
                                       GeoRegion clipRegion)
用于从记录集中提取等值线。方法的实现原理类似“从点数据集中提取等值线”的方法,不同之处在于,这里的操作对象是记录集,因此, 实现的过程是先对记录集中的点数据使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPointRecordset - 指定的待提取的记录集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值线时,将使用该字段中的值,对记录集中的点数据进行插值分析。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线集合。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, Recordset, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoline

public static DatasetVector extractIsoline(SurfaceExtractParameter parameter,
                                           Recordset extractedPointRecordset,
                                           java.lang.String zValueFieldName,
                                           TerrainInterpolateType terrainInterpolateType,
                                           Datasource outputDatasource,
                                           java.lang.String outputDatasetName,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从记录集中提取等值线,并将结果保存为数据集。方法的实现原理类似“从点数据集中提取等值线”的方法,不同之处在于,这里的操作对象是记录集,因此, 实现的过程是先对记录集中的点数据进行插值分析 (可以设置插值方法),得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),然后从栅格数据集中提取等值线。

参数:
parameter - 指定的提取操作需要的参数。
extractedPointRecordset - 指定的待提取的记录集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值线时,将使用该字段中的值,对记录集中的点数据进行插值分析。
terrainInterpolateType - 指定的地形插值类型。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - clipRegion 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线数据集。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, Recordset, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoline

public static GeoLine[] extractIsoline(SurfaceExtractParameter parameter,
                                       Recordset extractedPointRecordset,
                                       java.lang.String zValueFieldName,
                                       TerrainInterpolateType terrainInterpolateType,
                                       double resolution,
                                       GeoRegion clipRegion)
用于从记录集中提取等值线。方法的实现原理类似“从点数据集中提取等值线”的方法,不同之处在于,这里的操作对象是记录集,因此, 实现的过程是先对记录集中的点数据进行插值分析(可以设置插值方法),得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),然后从栅格数据集中提取等值线。

参数:
parameter - 指定的提取操作所需的参数。
extractedPointRecordset - 指定的待提取的记录集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值线时,将使用该字段中的值,对记录集中的点数据进行插值分析。
terrainInterpolateType - 指定的地形插值类型。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值线得到的线集合。如果提取失败则返回 null。
示例:
请参见 extractIsoline(SurfaceExtractParameter, Recordset, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoregion

public static DatasetVector extractIsoregion(SurfaceExtractParameter parameter,
                                             DatasetGrid extractedGrid,
                                             Datasource outputDatasource,
                                             java.lang.String outputDatasetName,
                                             GeoRegion clipRegion)
用于从栅格数据集中提取等值面,并将结果保存为数据集。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格据集。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的提取结果数据集的名称。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取得到的等值面数据集。如果提取失败则返回 null。
示例:
以下代码示范了如何从栅格数据集中提取等值面。
 public DatasetVector extractIsoregionFromDatasetGrid(
                DatasetGrid sourceDatasetGrid, Datasource outputDatasource) {
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoregion";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //设置表面分析提取操作参数
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setDatumValue(300);
        surfaceExtractParameter.setInterval(200);
        surfaceExtractParameter.setSmoothness(3);
        surfaceExtractParameter.setSmoothMethod(SmoothMethod.BSPLINE);
 
        //从栅格数据集中提取等值面
        DatasetVector resultIsoregion = SurfaceAnalyst.extractIsoregion(
                        surfaceExtractParameter, sourceDatasetGrid, outputDatasource,
                        outputDatasetName, null);
 
        return resultIsoregion;
 }
 

extractIsoregion

public static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter,
                                           DatasetGrid extractedGrid,
                                           GeoRegion clipRegion)
用于从栅格数据集中提取等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格数据集。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值面得到的面集合。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, DatasetGrid, Datasource, String, GeoRegion) 方法的示例。

extractIsoregionGeometry

public static IsoRegionResult[] extractIsoregionGeometry(SurfaceExtractParameter parameter,
                                                         DatasetGrid extractedGrid,
                                                         GeoRegion clipRegion)
用于从栅格数据集中提取等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedGrid - 指定的待提取的栅格数据集。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
栅格提等值面结果对象集合。如果提取失败则返回 null。

extractIsoregion

public static DatasetVector extractIsoregion(SurfaceExtractParameter parameter,
                                             DatasetVector extractedPoint,
                                             java.lang.String zValueFieldName,
                                             Datasource outputDatasource,
                                             java.lang.String outputDatasetName,
                                             double resolution,
                                             GeoRegion clipRegion)
用于从点数据集中提取等值面,并将结果保存为数据集。方法的实现原理是先对点数据集使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值线, 最终由等值线构成等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoint - 指定的待提取的点数据集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值面时,将使用该字段中的值,对点数据集进行插值分析。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的提取结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取得到的等值面数据集。如果提取失败则返回 null。
示例:
示例一:以下代码示范了如何从一个二维点数据集,通过指定基准值(DatumValue)和等值距(Interval)来提取等值面。其中,“Elevation”为该点数据集的高程字段。
 public DatasetVector extractIsoregionFromDatasetVector(
                DatasetVector sourceDataserVector, Datasource outputDatasource) {
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoregion";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //设置表面分析提取操作参数
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setDatumValue(300);
        surfaceExtractParameter.setInterval(200);
 
        //从二维点数据集中提取等值面
        DatasetVector resultIsoregion = SurfaceAnalyst.extractIsoregion(
                        surfaceExtractParameter, sourceDataserVector, "Elevation",
                        outputDatasource, outputDatasetName, 3000, null);
 
        return resultIsoregion;
 }
 
示例二:以下代码示范了如何从二维矢量点数据集,通过指定 Z 值集合(ExpectedZValues)来提取等值面。其中,“Elevation”为该点数据集的高程字段。
 public DatasetVector extractIsoregionFromDatasetVectorbyZValue(
                DatasetVector sourceDataserVector, Datasource outputDatasource) {
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoregion";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //设置表面分析提取操作参数
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setExpectedZValues(new double[] { 100, 600, 1100 });
 
        //从二维点数据集中提取等值面
        DatasetVector resultIsoregion = SurfaceAnalyst.extractIsoregion(
                        surfaceExtractParameter, sourceDataserVector, "Elevation",
                        outputDatasource, outputDatasetName, 3000, null);
 
        return resultIsoregion;
 }
 

extractIsoregion

public static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter,
                                           DatasetVector extractedPoint,
                                           java.lang.String zValueFieldName,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从点数据集中提取等值面。方法的实现原理是先对点数据集使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值线, 最终由等值线构成等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoint - 指定的待提取的点数据集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值面时,将使用该字段中的值,对点数据集进行插值分析。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值面得到的面集合。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, DatasetVector, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoregion

public static DatasetVector extractIsoregion(SurfaceExtractParameter parameter,
                                             DatasetVector extractedPoint,
                                             java.lang.String zValueFieldName,
                                             TerrainInterpolateType terrainInterpolateType,
                                             Datasource outputDatasource,
                                             java.lang.String outputDatasetName,
                                             double resolution,
                                             GeoRegion clipRegion)
用于从点数据集中提取等值面,并将结果保存为数据集。方法的实现原理是先对点数据集进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型), 然后从栅格数据集中提取等值线,最终由等值线构成等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoint - 指定的待提取的点数据集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值面时,将使用该字段中的值,对点数据集进行插值分析。
terrainInterpolateType - 指定的地形插值类型。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的提取结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取得到的等值面数据集。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, DatasetVector, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoregion

public static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter,
                                           DatasetVector extractedPoint,
                                           java.lang.String zValueFieldName,
                                           TerrainInterpolateType terrainInterpolateType,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从点数据集中提取等值面。方法的实现原理是先对点数据集进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值线, 最终由等值线构成等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoint - 指定的待提取的点数据集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值面时,将使用该字段中的值,对点数据集进行插值分析。
terrainInterpolateType - 指定的地形插值类型。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值面得到的面集合。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, DatasetVector, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoregion

public static DatasetVector extractIsoregion(SurfaceExtractParameter parameter,
                                             Point3Ds extractedPoints,
                                             Datasource outputDatasource,
                                             java.lang.String outputDatasetName,
                                             double resolution,
                                             GeoRegion clipRegion)
用于从三维点集合中提取等值面,并将结果保存为数据集。方法的实现原理是先利用点集合中存储的第三维信息(高程或者温度等),也就是除了点的坐标信息的数据, 对点数据使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值面。

参数:
parameter - 指定的提取等值面所需的参数。
extractedPoints - 指定的待提取等值面的点串,该点串中的点是三维点,每一个点存储了 X,Y 坐标信息和只有一个第三维度的信息(例如:高程信息等)。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取得到的等值面数据集。如果提取失败则返回 null。
示例:
以下代码示范了如何从三维点集合中提取等值面。
 public DatasetVector extractIsoregionFromPoint3Ds(Datasource outputDatasource) {
        Point3D[] arrayPoint3D = new Point3D[8];
        arrayPoint3D[0] = new Point3D(1, 1, 2);
        arrayPoint3D[1] = new Point3D(1, 2, 5);
        arrayPoint3D[2] = new Point3D(2, 2, 7);
        arrayPoint3D[3] = new Point3D(2, 4, 6);
        arrayPoint3D[4] = new Point3D(3, 1, 10);
        arrayPoint3D[5] = new Point3D(3, 3, 4);
        arrayPoint3D[6] = new Point3D(4, 1, 9);
        arrayPoint3D[7] = new Point3D(4, 3, 11);
 
        //构建一个三维点集合
        Point3Ds point3Ds = new Point3Ds();
        point3Ds.addRange(arrayPoint3D);
 
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setDatumValue(1);
        surfaceExtractParameter.setInterval(3);
        surfaceExtractParameter.setSmoothMethod(SmoothMethod.BSPLINE);
        surfaceExtractParameter.setSmoothness(5);
 
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoregion";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //从三维点集合中提取等值面
        DatasetVector resultIsoregion = SurfaceAnalyst.extractIsoregion(
                        surfaceExtractParameter, point3Ds, outputDatasource,
                        outputDatasetName, 1, null);
 
        return resultIsoregion;
 }
 

extractIsoregion

public static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter,
                                           Point3Ds extractedPoints,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从三维点集合中提取等值面。方法的实现原理是先利用点集合中存储的第三维信息(高程或者温度等),也就是除了点的坐标信息的数据, 对点数据使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoints - 指定的待提取等值面的点串,该点串中的点是三维点,每一个点存储了 X,Y 坐标信息和只有一个第三维度的信息(例如:高程信息等)。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值面得到的面集合。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, Point3Ds, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoregion

public static DatasetVector extractIsoregion(SurfaceExtractParameter parameter,
                                             Point3Ds extractedPoints,
                                             TerrainInterpolateType terrainInterpolateType,
                                             Datasource outputDatasource,
                                             java.lang.String outputDatasetName,
                                             double resolution,
                                             GeoRegion clipRegion)
用于从三维点集合中提取等值面,并将结果保存为数据集。方法的实现原理是先利用点集合中存储的第三维信息(高程或者温度等),也就是除了点的坐标信息的数据, 对点数据进行插值分析,得到栅格数据集(中间结果数据集),接着从栅格数据集中提取等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoints - 指定的待提取等值面的点串,该点串中的点是三维点,每一个点存储了 X,Y 坐标信息和只有一个第三维度的信息(例如:高程信息等)。
terrainInterpolateType - 指定的地形插值类型。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取得到的等值面数据集。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, Point3Ds, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoregion

public static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter,
                                           Point3Ds extractedPoints,
                                           TerrainInterpolateType terrainInterpolateType,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从三维点集合中提取等值面。方法的实现原理是先利用点集合中存储的第三维信息(高程或者温度等),也就是除了点的坐标信息的数据, 对点数据进行插值分析,得到栅格数据集(中间结果数据集),接着从栅格数据集中提取等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPoints - 指定的待提取等值面的点串,该点串中的点是三维点,每一个点存储了 X,Y 坐标信息和只有一个第三维度的信息(例如:高程信息等)。
terrainInterpolateType - 指定的地形插值类型。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值面得到的面集合。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, Point3Ds, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoregion

public static DatasetVector extractIsoregion(SurfaceExtractParameter parameter,
                                             Recordset extractedPointRecrodset,
                                             java.lang.String zValueFieldName,
                                             Datasource outputDatasource,
                                             java.lang.String outputDatasetName,
                                             double resolution,
                                             GeoRegion clipRegion)
用于从点记录集中提取等值面,并将结果保存为数据集。方法的实现原理类似“从点数据集中提取等值面”的方法,不同之处在于,这里的操作对象是记录集,因此, 实现的过程是先对记录集中的点数据使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型), 接着从栅格数据集中提取等值线,最终由等值线构成等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPointRecrodset - 指定的待提取的记录集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值面时,将使用该字段中的值,对记录集中的点数据进行插值分析。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的提取结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取得到的等值面数据集。如果提取失败则返回 null。
示例:
以下代码示范了如何从点记录集中提取等值面。其中,“Elevation”为该点记录集中点数据的高程字段。
 public DatasetVector extractIsoregionFromRecordset(Recordset sourceRecordset,
                Datasource outputDatasource) {
        //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
        String outputDatasetName = "extractIsoregion";
        if (outputDatasource.getDatasets().contains(outputDatasetName)) {
                outputDatasource.getDatasets().delete(outputDatasetName);
        }
 
        //设置表面分析提取操作参数
        SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
        surfaceExtractParameter.setDatumValue(300);
        surfaceExtractParameter.setInterval(200);
 
        //从点记录集中提取等值面
        DatasetVector resultIsoregion = SurfaceAnalyst.extractIsoregion(
                        surfaceExtractParameter, sourceRecordset, "Elevation",
                        outputDatasource, outputDatasetName, 3000, null);
 
        return resultIsoregion;
 }
 

extractIsoregion

public static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter,
                                           Recordset extractedPointRecordset,
                                           java.lang.String zValueFieldName,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从点记录集中提取等值面。方法的实现原理类似“从点数据集中提取等值面”的方法,不同之处在于,这里的操作对象是记录集,因此,实现原理是先对点记录集中的点数据使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值线, 最终由等值线构成等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPointRecordset - 指定的待提取的记录集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值面时,将使用该字段中的值,对点数据集进行插值分析。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值面得到的面集合。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, Recordset, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoregion

public static DatasetVector extractIsoregion(SurfaceExtractParameter parameter,
                                             Recordset extractedPointRecrodset,
                                             java.lang.String zValueFieldName,
                                             TerrainInterpolateType terrainInterpolateType,
                                             Datasource outputDatasource,
                                             java.lang.String outputDatasetName,
                                             double resolution,
                                             GeoRegion clipRegion)
用于从记录集中提取等值面,并将结果保存为数据集。方法的实现原理类似“从点数据集中提取等值面”的方法,不同之处在于,这里的操作对象是记录集,因此, 实现的过程是先对记录集中的点数据进行插值分析 ,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值线,最终由等值线构成等值面。

参数:
parameter - 提取等值面时需要的参数。
extractedPointRecrodset - 指定的待提取的记录集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值面时,将使用该字段中的值,对记录集中的点数据集进行插值分析。
terrainInterpolateType - 指定的地形插值类型。
outputDatasource - 指定的用于存放结果数据集的数据源。
outputDatasetName - 指定的结果数据集的名称。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取得到的等值面数据集。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, Recordset, String, Datasource, String, double, GeoRegion) 方法的示例。

extractIsoregion

public static GeoRegion[] extractIsoregion(SurfaceExtractParameter parameter,
                                           Recordset extractedPointRecordset,
                                           java.lang.String zValueFieldName,
                                           TerrainInterpolateType terrainInterpolateType,
                                           double resolution,
                                           GeoRegion clipRegion)
用于从记录集中提取等值面。方法的实现原理类似“从点数据集中提取等值面”的方法,不同之处在于,这里的操作对象是记录集,因此,实现原理是先对记录集中的点数据进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值线, 最终由等值线构成等值面。

参数:
parameter - 指定的提取操作需要的参数。
extractedPointRecordset - 指定的待提取的记录集。
zValueFieldName - 指定的用于提取操作的字段名称。提取等值面时,将使用该字段中的值,对记录集中的点数据集进行插值分析。
terrainInterpolateType - 指定的地形插值类型。
resolution - 指定的中间结果(栅格数据集)的分辨率。
clipRegion - 指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。
返回:
提取等值面得到的面集合。如果提取失败则返回 null。
示例:
请参见 extractIsoregion(SurfaceExtractParameter, Recordset, String, Datasource, String, double, GeoRegion) 方法的示例。