对矢量数据集进行裁剪,将被裁剪数据集(第一个数据集)中不在裁剪数据集(第二个数据集)内的对象裁剪并删除。

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

语法

C#
public static bool Clip(
	DatasetVector dataset,
	DatasetVector clipDataset,
	DatasetVector resultDataset,
	OverlayAnalystParameter parameter
)

参数

dataset
Type: SuperMap.Data..::.DatasetVector
被裁剪的数据集,也称第一数据集。该数据集类型可以是点、线和面。
clipDataset
Type: SuperMap.Data..::.DatasetVector
用于裁剪的数据集,也称第二数据集。该数据集类型必须是面。
resultDataset
Type: SuperMap.Data..::.DatasetVector
存放裁剪结果的矢量数据集。
parameter
Type: SuperMap.Analyst.SpatialAnalyst..::.OverlayAnalystParameter
叠加分析的参数对象,该对象用于设置分析时的保留字段等分析参数。此处该对象设置无效。

返回值

一个布尔值,如果成功返回 true,否则返回 false。

备注

注意:

1、裁剪数据集(第二数据集)的类型必须是面,被剪裁的数据集(第一数据集)可以是点、线、面;

2、在被裁剪数据集中,只有落在裁剪数据集多边形内的对象才会被输出到结果数据集中;

3、裁剪数据集、被裁剪数据集以及结果数据集的地理坐标系必须一致。

4、Clip 与 Intersect 在空间处理上是一致的,不同在于对结果数据集属性的处理,Clip 分析只是用来做裁剪,结果数据集与第一个数据集的属性表结构相同,此处叠加分析的参数对象设置无效,而 Intersect 求交分析的结果则可以根据字段设置情况来保留两个数据集的字段;

5、所有叠加分析的结果都不考虑数据集的系统字段。

矢量数据集裁剪 clip 图示

示例

以下代码示范了如何根据给定的被操作线矢量数据集、用于操作的面矢量数据集和目标数据源对线矢量数据集进行裁剪。

CopyC#
public void OverlayAnalystClip(DatasetVector datasetOperated, DatasetVector datasetOperate, Datasource targetDatasource)
{
    //创建一个线矢量数据集,用于存储裁剪分析获得的结果
    String resultDatasetClipName = targetDatasource.Datasets.GetAvailableDatasetName("resultDatasetClip");
    DatasetVectorInfo datasetvectorInfoClip = new DatasetVectorInfo();
    datasetvectorInfoClip.Type = DatasetType.Line;
    datasetvectorInfoClip.Name = resultDatasetClipName;
    datasetvectorInfoClip.EncodeType = EncodeType.None;
    DatasetVector resultDatasetClip = targetDatasource.Datasets.Create(datasetvectorInfoClip);

    //设置叠加分析参数
    OverlayAnalystParameter overlayAnalystParamClip = new OverlayAnalystParameter();
    overlayAnalystParamClip.Tolerance = 0.0122055608;

    //调用裁剪叠加分析方法实现裁剪分析
    OverlayAnalyst.Clip(datasetOperated, datasetOperate, resultDatasetClip, overlayAnalystParamClip);
}

请参见