用于从点数据集中提取等值面,并将结果保存为数据集。方法的实现原理是先对点数据集使用 IDW 插值法(InterpolationAlgorithmType.IDW)进行插值分析,得到栅格数据集(方法实现的中间结果,栅格值为单精度浮点型),接着从栅格数据集中提取等值线,最终由等值线构成等值面。

命名空间:  SuperMap.Analyst.SpatialAnalyst
程序集:  SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll

语法

C#
public static DatasetVector ExtractIsoregion(
	SurfaceExtractParameter parameter,
	DatasetVector extractedPoint,
	string zValueFieldName,
	Datasource targetDatasource,
	string targetDatasetName,
	double resolution,
	GeoRegion clipRegion
)

参数

parameter
Type: SuperMap.Analyst.SpatialAnalyst..::.SurfaceExtractParameter
指定的提取操作需要的参数。
extractedPoint
Type: SuperMap.Data..::.DatasetVector
指定的待提取的点数据集。
zValueFieldName
Type: System..::.String
指定的用于提取操作的字段名称。提取等值面时,将使用该字段中的值,对点数据集进行插值分析,得到栅格数据集(中间结果),接着从栅格数据集提取等值线,最终由等值线构成等值面。
targetDatasource
Type: SuperMap.Data..::.Datasource
targetDatasetName
Type: System..::.String
resolution
Type: System..::.Double
指定的中间结果(栅格数据集)的分辨率。
clipRegion
Type: SuperMap.Data..::.GeoRegion
指定的裁剪面对象。如果不需要对操作结果进行裁剪,可以使用 null 值取代该参数。

返回值

提取得到的等值面数据集。如果提取失败则返回 null。

示例

示例一:以下代码示范了如何从一个二维点数据集,通过指定基准值(DatumValue)和等值距(Interval)来提取等值面。其中,“Elevation”为该点数据集的高程字段。

CopyC#
public DatasetVector ExtractIsoregionFromDatasetVector(DatasetVector sourceDataserVector, Datasource outputDatasource)
{
    //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
    String outputDatasetName = "extractIsoregion";
    if (outputDatasource.Datasets.Contains(outputDatasetName))
    {
        outputDatasource.Datasets.Delete(outputDatasetName);
    }

    //设置表面分析提取操作参数
    SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
    surfaceExtractParameter.DatumValue = 300;
    surfaceExtractParameter.Interval = 200;

    //从二维点数据集中提取等值面
    DatasetVector resultIsoregion = SurfaceAnalyst.ExtractIsoregion(surfaceExtractParameter, sourceDataserVector, "Elevation", outputDatasource, outputDatasetName, 3000, null);

    return resultIsoregion;
}

示例二:以下代码示范了如何从二维矢量点数据集,通过指定 Z 值集合(ExpectedZValues)来提取等值面。其中,“Elevation”为该点数据集的高程字段。

CopyC#
public DatasetVector ExtractIsoregionFromDatasetVectorbyZValue(DatasetVector sourceDataserVector, Datasource outputDatasource)
{
    //设置结果矢量数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
    String outputDatasetName = "extractIsoregion";
    if (outputDatasource.Datasets.Contains(outputDatasetName))
    {
        outputDatasource.Datasets.Delete(outputDatasetName);
    }

    //设置表面分析提取操作参数
    SurfaceExtractParameter surfaceExtractParameter = new SurfaceExtractParameter();
    surfaceExtractParameter.ExpectedZValues = new double[] { 100, 600, 1100 };

    //从二维点数据集中提取等值面
    DatasetVector resultIsoregion = SurfaceAnalyst.ExtractIsoregion(surfaceExtractParameter, sourceDataserVector, "Elevation", outputDatasource, outputDatasetName, 3000, null);

    return resultIsoregion;
}

请参见