GIS应用开发AO(2)-空间分析ITopologicalOperate

---恢复内容开始---

       学院的安排也是可以,大三还要再学一遍大二的课程,不过,我喜欢编写代码哟,今天看了一下空间分析,主要用到了ITopologicalOperate,IProximityOperate,IRealationOperate三个接口,

这三个可以实现Arcgis许多常用功能,比如缓冲,裁剪......等等你能想到的功能。

      下面进入代码环节,上代码,缓冲为例

 IGraphicsContainerSelect gcs = map as IGraphicsContainerSelect;

            if (gcs.ElementSelectionCount == 0)
            {
                MessageBox.Show("当前没有选择任何Element!请先选取。");
                return;
            }

            IElement el = gcs.SelectedElement(0);
            IGeometry geo = el.Geometry;

            ITopologicalOperator to = geo as ITopologicalOperator;
            if (to != null)
            {
                IGeometry ch = to.Buffer(distance);
             //  其余代码简单,自己添加,主要是显示缓冲面,参考polygon的绘制

            }

                  IGraphicsContainerSelect 专门用于选择元素的管理,IGraphicsContainerSelect::UnselectAllElements用来清除选中元素,讲一讲ITopologicalOperate,这个接口可以实现很多功能,如下图:

                   

                 功能简直多,只用过一些功能,就不多说了,免得暴露了我的孤陋寡闻,哈哈,要实现这些功能简单,把

                 IGeometry ch = to.Buffer(.......);的buffer换成你需要的功能函数,比如Interact,把两个polygon相交的部分提取出来,语句改为

                 IGeometry intersect = to.Intersect(....., esriGeometryDimension.esriGeometry2Dimension);esriGeometryDimension描述几何对象的纬度,2维刚好绘制一个区域。

              这些功能分别是:

Boundary属性
如图所示Polygon几何对象的Boundary是组成它的Polyline几何对象
Polyline几何对象的[Boundary是组成它的顶点Point几何对象
而Point几何对象的Boundary是空对象,示意图如下图所示:

 


Buffer方法

Buffer方法可以给一个高级几何对象产生一个缓冲区,无论是Polygon,Polyline,Point它们的缓冲区都是具有面积的几何对象

 

Clip方法

Clip方法可以将用一个Envelope对象对一个几何对象进行裁剪,参见结果是几何对象被Envelope 对象所包围的部分如图所示:

ConvexHull方法

ConvexHull方法可以产生一个几何图形的最小的边框凸多边形(没有凹面包含几何图形的最小多边形)

Cut方法
Cut方法不支持GeometryBags几何对象,它可以指定一条切割曲线和一个几何图形,经过切割运算后把几何图形分为左右两部分,做,右两部分是相对曲线的方向而言。点与多点不能被切割,Polyline和Polygon只有与切割曲线相交时才能执行Cut方法,

 



Difference方法
Difference方法用于产生两个几何对象的差集。如图所示:

 

 

Union方法和ConstructUnion都用于合并几何对象,所不同的是前者合并两个同维度的几何对象为单个几何对象,而后者是高效的合并多个枚举几何对象与单个几何对象合并为单个几何对象,这对于大量几何对象的合并非常高效的。

Intersect方法
Intersect方法用于返回两个同维度几何对象的交集,即两个几何对象的重合部分。如下图所示:

 



SymetricDifference方法
SymetricDifference方法用于产生两个几何图形的对称差分,即两个几何的并集部分减去两个几何的交集部分。


IsSimple属性和Simplify方法
IsSimple属性用于检测几何对象是否是拓扑正确即为简化几何对象,而Simplify方法用于简化几何对象使几何对象的拓扑正确。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

---恢复内容结束---

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Y_Mathison

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

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

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

打赏作者

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

抵扣说明:

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

余额充值