空间分析
空间查询
1.空间查询概念:地图中承载着大量的地理信息,通过空间查询的方式可以快速查找地图中的信息。包括按照属性查询、根据位置查询。
2.空间查询在arcgis engine当中的用法:
①通过QueryFilter,queryfilter是属性查询,代码语句:
IQueryFilter mQueryFilter=new QueryFilterClass();
mQueryFilter.WhereClause=“条件”;
②通过spatialfilter,它是空间查询,有两个重要的属性:geometry和spatialrel
其中spatialrel涉及到空间关系运算,空间关系运算包含contains、within、cross、overlap、intersect;
代码语句:
ISpatialFilter mSpatialFilter=new SpatialFilterClass();
mSpatialFilter.Geometry=pGeometry;
mSpatialFilter.SpatialRel=esriSpatialrelEnum.esriSpatialRelContains;
空间查询还可以和游标相结合,也就是cursor,看看代码:
IFeatureCurosor PFC=pFeatureClass.Search(mQueryFilter,true);
空间拓扑运算
1.什么是空间拓扑运算?
通过一系列基于一个或多个几何图形中间点的逻辑比较,然后再返回一些几何图形,这个过程就是空间拓扑运算。
2.空间拓扑运算涉及到的ArcGISEngine接口:ITopologicalOperator
3.ITopologicalOperator的方法:建立缓冲区(buffer)、clip(裁剪)、cut(切割)等;
4.来看看代码,以建立缓冲区为例:
ITopologicalOperator topo=pGeometry as ITopologicalOperator;
IGeometry mBuffer=topo.Buffer(5000);
IElment mEle;
mEle.geometry=mBuffer;
空间关系运算
1.什么是空间关系运算?
通过图形的位置查询关系,也就是通过位置查询属性。
2.实现的接口IRelationalOperator,它的方法包括:touch、contains等等。
3.空间关系运算通常是在两个几何对象中进行的,返回一个布尔值
来看看代码:
IRelationalOperator ro=pFeature.shape as IRelationalOperator;
Bool isTrue=rp.contains(pOtherFeature.shape);
矢量图层叠置分析
1.什么是矢量图层叠置分析?
它是GIS提取隐藏空间信息的常用手段之一。