arcengine 缓冲区查询 (ITopologicalOperator ISpatialFilter接口 )
来源:互联网 发布:mysql创建存储过程例子 编辑:程序博客网 时间:2024/05/22 01:49
参考1
缓冲区查询特别有用,也很方便,照着别人的自己写了一个,记录一下。
//开始点选查询
IMap pMap;
pMap = axMapControl1.Map as IMap;
//获取点图层
IFeatureLayer pFeatureLayer;
pFeatureLayer = pMap.get_Layer(i) as IFeatureLayer;
IFeatureClass pFeatureClass;
pFeatureClass = pFeatureLayer.FeatureClass;
//获取鼠标点击点
IPoint pPoint;
pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
IGeometry pGeometry;
//定义缓冲区
double db = 2;
ITopologicalOperator pTop;
pTop = pPoint as ITopologicalOperator;
pGeometry = pTop.Buffer(db);
//选取
pMap.SelectByShape(pGeometry, null, false);
pMap.ClearSelection();
//空间过滤运算
ISpatialFilter pSpatialFilter = new SpatialFilterClass();
pSpatialFilter.Geometry = pGeometry;
//设置为不同的要素类型的图层
switch (pFeatureClass.ShapeType)
{
case esriGeometryType.esriGeometryPoint:
pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;
break;
case esriGeometryType.esriGeometryPolyline:
pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelCrosses;
break;
case esriGeometryType.esriGeometryPolygon:
pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
break;
}
pSpatialFilter.GeometryField = pFeatureClass.ShapeFieldName;
//指针
IFeatureCursor pFeatureCursor;
pFeatureCursor = pFeatureClass.Search(pSpatialFilter, false);
IFeature pFeature;
pFeature = pFeatureCursor.NextFeature();
//开始遍历
while (pFeature != null)
{
//获取要素的字段名和字段值
int n = pFeature.Fields.FieldCount;
string sName;
string sValue;
//这句话的对象需要随着地图的改变而改变。可以是ID,FID 等带有唯一标识身份的 东西。
int index = pFeature.Fields.FindField("ObjectID");
if (index == -1)
return;
IField pField = pFeature.Fields.get_Field(index);
sName = pField.Name;
sValue = pFeature.get_Value(index).ToString();
pDataRow = pDataTable.NewRow();
//之所以这样赋值是为了保证ID的唯一性;
pDataRow["ID"] = lyrName + sValue;
pDataRow["Name"] = sValue;
pDataRow["ParentID"] = lyrName;
pDataTable.Rows.Add(pDataRow);
pFeature = pFeatureCursor.NextFeature();
}
//这个是师兄交的,指针等占内存的东西在用完之后一定要释放;!!!
System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);
}
- arcengine 缓冲区查询 (ITopologicalOperator ISpatialFilter接口 )
- ITopologicalOperator接口
- ITopologicalOperator接口
- AE查询 IQueryFilter ISpatialFilter
- ITopologicalOperator接口问题多多
- ITopologicalOperator接口详解
- ITopologicalOperator接口详解
- ITopologicalOperator接口使用
- ITopologicalOperator接口使用方法
- ITopologicalOperator接口简介
- ArcEngine利用ITopologicalOperator实现裁剪功能
- ArcEngine利用ITopologicalOperator实现裁剪功能
- ArcEngine的拓扑分析之ITopologicalOperator
- ArcEngine的拓扑分析之ITopologicalOperator
- ArcEngine的拓扑分析之ITopologicalOperator
- ArcEngine创建缓冲区,并查询缓冲区内要素
- 创建要素类,关系类,ITopologicalOperator接口
- 空间查询(ISpatialFilter):统计多边形要素内的要素
- 细谈Ehcache页面缓存使用
- BAE 3.0日志
- oracle在sqlplus中执行sql文件
- C++中的this指针
- codeforce round#261(Div2)
- arcengine 缓冲区查询 (ITopologicalOperator ISpatialFilter接口 )
- Hibernate3查询返回Map探秘
- webstorm快捷键大全
- SingleTouch 和 MutliTouch
- 遇到"ORA-39700: 必须用 UPGRADE 选项打开数据库"问题
- 使用 SQL 缓存依赖项,数据库缓存依赖 (附实例)
- .htaccess 的神奇之处
- hdoj 4932 Miaomiao's Geometry 【暴力枚举】
- Java VisualVM 监控远程机器