ArcEngine地图点击事件下的属性查询实例
3星 · 超过75%的资源 需积分: 39 128 浏览量
更新于2024-09-17
收藏 5KB TXT 举报
在ArcGIS Engine中,属性查询是一个关键的功能,用于检索地图层中的特定属性数据。本段代码是针对ArcMap Control(axMapControl)中实现鼠标点击事件(OnMouseDown)时的属性查询功能的一个片段。当用户点击一个特定按钮(barBtnProperty)且该按钮的Tag属性为真时,程序会执行属性查询操作。
首先,代码检查barBtnProperty.Tag的状态,如果为真,则执行以下步骤:
1. 将barBtnProperty.Tag设置为假,表示查询正在进行。
2. 定义并初始化几个关键的对象,如ILayer(图层)、IFeatureLayer(特征图层)、IFeatureSelection(特征选择)、IEnvelope(矩形范围)、IGeometry(几何对象)、ISpatialFilter(空间过滤器)、ISelectionSet(选择集)、IEnumIDs(枚举ID集合)等。
3. 计算鼠标点击位置与地图视图边界之间的距离(ext),用于创建查询范围的边界,这里是通过地图的宽度和比例缩放来动态调整查询范围的大小。
4. 创建一个Envelope类实例(pEnv)并将地图当前的Extent(边界)减去自定义的扩展值赋值给它,形成查询范围。
5. 将地图的鼠标点击坐标减去扩展值后的范围赋值给几何对象(pGeometry)。
6. 使用几何对象创建一个空间过滤器(pSpatialFilter),设置其关系运算符为esriSpatialRelIntersects,即交集,这样只返回与查询范围有交集的特征。
7. 创建一个FrmIdentity对象(FrmIdentityClass的实例),这是一个包含属性树视图的对话框,用于展示查询结果。设置对话框的位置为屏幕中心,并显示。
8. 清空属性树视图(AttributeTreeView)节点,然后开启显示线条选项。
9. 最后,调用FrmIdentity的CreatForm方法打开属性查询对话框,显示地图层的属性供用户查看或筛选。
这段代码的核心逻辑在于利用空间过滤器和鼠标点击位置,动态地执行属性查询,并将结果显示在一个交互式的属性树视图中,提高了用户的查询体验。通过这个例子,我们可以理解如何在ArcGIS Engine中结合用户交互进行高效的属性数据获取。
2018-08-27 上传
2022-09-20 上传
2013-11-13 上传
2019-03-29 上传
2019-04-19 上传
2022-07-15 上传
lxy1106
- 粉丝: 47
- 资源: 9
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章