对记录集进行裁剪,将第一个记录集中不在第二个记录集内的对象裁剪并删除。
命名空间:
SuperMap.Analyst.SpatialAnalyst程序集: SuperMap.Analyst.SpatialAnalyst (in SuperMap.Analyst.SpatialAnalyst)
版本: dll
语法
C# |
---|
public static bool Clip( Recordset recordset, Recordset clipRecordset, DatasetVector resultDataset, OverlayAnalystParameter parameter ) |
参数
- recordset
- Type: SuperMap.Data..::.Recordset
被裁剪的记录集,也称为第一记录集。该记录集类型可以是点、线和面类型。
- clipRecordset
- Type: SuperMap.Data..::.Recordset
用于裁剪的记录集,也称为第二记录集。该记录集类型必须是面类型。
- 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(Recordset recordsetOperated, Recordset recordsetOperate, 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.0000015; //调用裁剪叠加分析方法实现裁剪分析 OverlayAnalyst.Clip(recordsetOperated, recordsetOperate, resultDatasetClip, overlayAnalystParamClip); }