arcengine 缓冲区查询 (ITopologicalOperator ISpatialFilter接口 )

本文介绍了如何在ArcEngine中使用ITopologicalOperator和ISpatialFilter接口进行缓冲区查询。通过选择地图上的点,创建缓冲区,然后根据缓冲区进行空间过滤,筛选出与缓冲区相交、包含或交叉的点、线、面要素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考1

缓冲区查询特别有用,也很方便,照着别人的自己写了一个,记录一下。

缓冲区查询主要用到的核心接口就两个,ITopologcialOperator和ISpatialFilter这两个接口。第一个接口用来构建缓冲区和进行其他的拓扑操作,第二个接口是空间过滤器,其中提供空间查询的各种关系。这两个接口还有很多其他属性和方法,用到时自行查看帮助。
一下是缓冲区查询的核心代码,当然之前必须指定查找的目标图层和建立缓冲区的图层和对象。
                        IGeometry pGeometry = TestFeature.Shape;
                        ITopologicalOperator pTopologicalOperator = pGeometry as ITopologicalOperator;
                        pGeometry = pTopologicalOperator.Buffer(Distence);//Distence是缓冲距离
                        pTopologicalOperator.Simplify();
                        ISpatialFilter pSpatialfilter = new SpatialFilterClass();
                        pSpatialfilter.Geometry = pGeometry;
                        pSpatialfilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelCrosses;
                        pSpatialfilter.GeometryField = "Shape";
                        ILayer pLayer = this.axMCl1.get_Layer(0);
                        IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;
                        IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
                        IFeatureCursor FeatureCursor = pFeatureClass.Search(pSpatialfilter, false);
                        IFeature Feature = FeatureCursor.NextFeature();


参考2

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BjGiser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值