arcengine erase 擦除
来源:互联网 发布:汽车车身电脑在线编程 编辑:程序博客网 时间:2024/05/16 11:58
擦除后图层保存在新图层中
使用GP工具。
修改原有图层数据实现擦除
参考:
点击打开链接
代码为:
public void EraseOper(IFeatureClass ExSourceFC,IFeatureClass ExEraseFC) { IFeatureClass mFeatureClass = null; IFeatureClass mSourceFeatureClass = null; IFeatureCursor mFeatureCursor = mFeatureClass.Search(null, false); IFeature mFeature = mFeatureCursor.NextFeature(); while (mFeature != null) { ISpatialFilter tSF = new SpatialFilterClass(); tSF.Geometry = mFeature.Shape; tSF.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; //求出与裁切框相交要素 IFeatureCursor tFeatureCursor = mSourceFeatureClass.Search(tSF, false); IFeature tFeature = tFeatureCursor.NextFeature(); while (tFeature != null) { IGeometry tGeo2 = tFeature.ShapeCopy; ITopologicalOperator tTope2 = tGeo2 as ITopologicalOperator; tTope2.Simplify(); IGeometry tGeo = tFeature.ShapeCopy; ITopologicalOperator tTope = tGeo as ITopologicalOperator; tTope.Simplify(); //用Envelope对要素进行裁切 tTope.Intersect(mFeature.Shape, esriGeometryDimension.esriGeometry2Dimension); //tTope.Clip(this._Envelope); IGeometry tGeoClip = (IGeometry)tTope; //用裁切出来的要素,再与其源要素进行求差处理,即得到外围要素 IGeometry tGeoDe = tTope2.Difference(tGeoClip); //把外围要素赋予源要素 tFeature.Shape = tGeoDe; tFeature.Store(); tFeature = tFeatureCursor.NextFeature(); mFeature = mFeatureCursor.NextFeature(); } } }
需要完善的内容
1.没有判断IFeatureClass对象是否为面对象,如果不为面对象则无法实现擦除。
2.没有考虑投影问题。
3.还有待发现其他可能产生的问题。
0 0
- arcengine 擦除 erase
- arcengine erase 擦除
- ArcEngine 实现擦除(Erase)产生的问题
- ArcEngine调用GP工具之Erase总是报…
- 擦除
- 擦除
- 介绍一下android uboot下擦除inand 的命令:mmc erase boot 0 0 1000
- linux文件系统如何使用emmc的擦除功能(Erase Trim Discard Sanitize)达到最优performance
- erase
- erase
- erase()
- erase
- erase
- erase
- 类型擦除
- 数据擦除
- graphic擦除
- 擦除UIImageView
- java系统性能
- 关于windows7的一些小事
- 实现RSS 解析的几种方式
- linux定时任务
- 【codeforces 766B】Mahmoud and a Triangle
- arcengine erase 擦除
- geany强大的跨平台编辑器
- android简单服务器的搭建
- shell脚本零星
- SqlBulkCopy 排除错误的数据 插入正确的数据
- Keepass密码管理
- hbase 运维
- css常用技巧
- Matlab二阶段单纯形法