博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# ArcEngine 实现点击要素高亮并弹出其属性
阅读量:6326 次
发布时间:2019-06-22

本文共 2313 字,大约阅读时间需要 7 分钟。

转自 

 

本文是模仿ArcMap里面的Identify(识别)功能,通过点击要素,使其高亮显示并弹出其属性表!本文只做了点击查询!

ITopologicalOperator pTopo;IGeometry pGeometry;IFeature pFeature;IFeatureLayer pFeatureLayer; IFeatureCursor pCursor;ISpatialFilter pFilter;DataTable dataTable; for (int i = 0; i < axMapControl1.Map.LayerCount; i++){pPoint = new PointClass();pPoint.PutCoords(e.mapX, e.mapY);pTopo = pPoint as ITopologicalOperator; double m_Radius = 1;pGeometry = pTopo.Buffer(m_Radius);if (pGeometry == null)continue; axMapControl1.Map.SelectByShape(pGeometry, null, true);//第三个参数为是否只选中一个axMapControl1.Refresh(esriViewDrawPhase.esriViewGeoSelection, null, null); //选中要素高亮显示pFilter = new SpatialFilterClass();pFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;pFilter.Geometry = pGeometry;pFeatureLayer = axMapControl1.Map.get_Layer(i) as IFeatureLayer;pCursor = pFeatureLayer.Search(pFilter, false);pFeature = pCursor.NextFeature(); string fieldName;if (pFeature != null){if (Application.OpenForms["otherQueryForm"] == null){otherqueryform = new otherQueryForm();otherqueryform.Show();}else{Application.OpenForms["otherQueryForm"].Show();}//这里主要控制子窗体不会重复弹出 dataTable = new DataTable();for (int k = 0; k < 2; k++){if (k == 0){dataTable.Columns.Add("属性");}if (k == 1){dataTable.Columns.Add("值");}}DataRow datarow;for (int j = 0; j < pFeature.Fields.FieldCount; j++){datarow = dataTable.NewRow();for (int m = 0; m < 2; m++){if (m == 0){fieldName = pFeature.Fields.get_Field(j).Name;datarow[m] = fieldName;}if (m == 1){if (pFeature.Fields.get_Field(j).Name == "Shape"){if (pFeature.Shape.GeometryType == ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint){datarow[m] = "点";}If ( pFeature.Shape.GeometryType == esriGeometryType.esriGeometryPolyline){datarow[m] = "线";}if (pFeature.Shape.GeometryType == ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon){datarow[m] = "面";}}else{datarow[m] = pFeature.get_Value(j).ToString();}}}dataTable.Rows.Add(datarow);}otherqueryform.dataGridView1.DataSource = dataTable;otherqueryform.layerName_dev.Text = pFeatureLayer.Name;otherqueryform.dataGridView1.Refresh();pFeature = null;break;}}

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6321827.html
,如需转载请自行联系原作者
你可能感兴趣的文章
初识GO语言——安装Go语言
查看>>
SDK命令行操作
查看>>
基于Bootstrap的DropDownList的JQuery组件的完善版
查看>>
EXTJS学习系列提高篇:第二十四篇(转载)作者殷良胜,ext2.2打造全新功能grid系列--阅增删改篇...
查看>>
Hadoop MapReduce编程 API入门系列之分区和合并(十四)
查看>>
判断二叉树是否平衡、是否完全二叉树、是否二叉排序树
查看>>
并查集的应用之求解无向图中的连接分量个数
查看>>
7个神奇的jQuery 3D插件
查看>>
在线浏览PDF之PDF.JS (附demo)
查看>>
波形捕捉:(3)"捕捉设备"性能
查看>>
AliOS Things lorawanapp应用介绍
查看>>
美国人的网站推广方式千奇百怪
查看>>
java web学习-1
查看>>
用maven+springMVC创建一个项目
查看>>
linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法
查看>>
redis知识点整理
查看>>
Hello World
查看>>
Spring3全注解配置
查看>>
ThreadLocal真会内存泄露?
查看>>
IntelliJ IDEA
查看>>