三维面填挖方计算。

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

语法

C#
public static CutFillResult CutFill(
	DatasetGrid sourceDatasetGrid,
	GeoRegion3D region,
	Datasource targetDatasource,
	string targetDatasetName
)

参数

sourceDatasetGrid
Type: SuperMap.Data..::.DatasetGrid
指定的待填挖的栅格数据集。
region
Type: SuperMap.Data..::.GeoRegion3D
targetDatasource
Type: SuperMap.Data..::.Datasource
指定的存放结果数据集的数据源。
targetDatasetName
Type: System..::.String
指定的结果数据集的名称。

返回值

填挖方结果信息。

备注

一个高低起伏的区域,可以根据这个区域填挖方后的三维面,利用三维面填挖方计算出需要填方的面积,挖方的面积、填方量以及挖方量。

示例

以下代码示范了如何进行三维面填挖方操作,获取填挖方结果信息。示例中输出填挖方的基本结果信息,并返回结果数据集。

CopyC#
private DatasetGrid CalculateCutFillByRegion(DatasetGrid sourceDatasetGrid, GeoRegion3D region3D, Datasource targetDatasource)
{
    //设置结果栅格数据集的名称,并检查数据源中是否已存在该数据集,如存在则删除
    String targetDatasetName = "cutFillResult";
    if (targetDatasource.Datasets.Contains(targetDatasetName))
    {
        targetDatasource.Datasets.Delete(targetDatasetName);
    }

    //调用三维面填挖方方法,并获取填挖方结果信息
    CutFillResult cutFillResult = CalculationTerrain.CutFill(sourceDatasetGrid, region3D, targetDatasource, targetDatasetName);

    Double cutArea = cutFillResult.CutArea;
    Double cutVolume = cutFillResult.CutVolume;
    Double fillArea = cutFillResult.FillArea;
    Double fillVolume = cutFillResult.FillVolume;
    Double remainderArea = cutFillResult.RemainderArea;

    DatasetGrid resultDatasetGrid = cutFillResult.CutFillGridResult;

    String result = "挖掘面积:" + cutArea + "\n挖掘体积:" + cutVolume + "\n填充面积:" + fillArea + "\n填充体积:" + fillVolume + "\n未进行填挖方的面积:" + remainderArea;
    MessageBox.Show(result);

    return resultDatasetGrid;
}

请参见