生成被操作几何对象经过操作几何对象裁剪后的几何对象。
命名空间:
SuperMap.Data程序集: SuperMap.Data (in SuperMap.Data)
版本: dll
语法
参数
- geometry
- Type: SuperMap.Data..::.Geometry
被操作几何对象,支持线和面类型。
- clipGeometry
- Type: SuperMap.Data..::.Geometry
操作几何对象,必须是面对象。
返回值
返回裁剪结果对象。备注
注意:
被操作几何对象只有落在操作几何对象内的那部分才会被输出为结果几何对象。
示例
以下代码示范如何判断两个几何对象间的空间位置关系以及对几何对象进行几何运算。
假设打开一个工作空间workspace,工作空间中存在一个数据源 datasource 对象。
CopyC#
public void GeometristSample(Workspace workspace, Datasource datasource) { // 从数据源中取出一个数据集 DatasetVector dataset = datasource.Datasets["world"] as DatasetVector; // 取出SmID值分别等于88和101的记录,同时取出相应几何对象 Recordset recordSearch = dataset.Query("SmID=101", CursorType.Static); Recordset recordTarget = dataset.Query("SmID=88", CursorType.Static); GeoRegion geometrySearch = (GeoRegion)recordSearch.GetGeometry(); GeoRegion geometryTarget = (GeoRegion)recordTarget.GetGeometry(); Geometrist.ComputeConvexHull(geometrySearch); // 几何运算 Console.WriteLine(Geometrist.Clip(geometrySearch, geometryTarget)); Console.WriteLine(Geometrist.CanContain(geometrySearch, geometryTarget)); Console.WriteLine(Geometrist.HasCommonLine(geometrySearch, geometryTarget)); Console.WriteLine(Geometrist.HasCommonPoint(geometrySearch, geometryTarget)); Console.WriteLine(Geometrist.HasIntersection(geometrySearch, geometryTarget)); Console.WriteLine(Geometrist.HasOverlap(geometrySearch, geometryTarget)); Console.WriteLine(Geometrist.HasTouch(geometrySearch, geometryTarget)); Console.WriteLine(Geometrist.Distance(geometrySearch, geometryTarget)); recordTarget.Dispose(); recordSearch.Dispose(); }