



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AE属性查询查询是GIS不可或缺的功能,今天我写一下我近期对查询的理解。先说说属性查询;A查询主要涉及接口:1.IQueryFilter通过设置这个接口的WhereClause属性来作为查询条件,本属性的语句为SQL的where后的条件语句。2.IFeatureLayer矢量图层,一般由ILayer进行转化。该接口的Search方法进行查询,Search方法的参数有两个,前面的是IQueryFilter对象,后面的是bool值,一般设为false.3.IFeature要素接口,用来接收查询出来的要素。4.IFeatureCursor游标接口,通过Search进行查询,可以讲结果保存在这里,从而利用NextFeature方法,遍历所有要素。B基本的思想获取图层,设置条件,进行查询,显示要素类。C如何获取IFeatureLayer地图的图层的索引从0开始,一般通过get_Layer方法或者Layer属性获取ILayer,然后将ILayer强制转换为IFeatureLayer。D举例下面是一个整体的过程。首先定义一个方法:/查询并高亮显示/为WhereClause赋值/图层,ILayer对象publicvoidQueryAndHight(stringsql,ILayerpLayer)/查询this.axMapControl1.Map.ClearSelection();/清除地图的选择IFeatureLayerpFeatureLayer=pLayerasIFeatureLayer;/定义矢量图层IQueryFilterpQueryFilter=newQueryFilter();/实例化一个查询条件对象pQueryFilter.WhereClause=sql;/将查询条件赋值IFeatureCursorpFeatureCursor=pFeatureLayer.Search(pQueryFilter,false);/进行查询IFeaturepFeature;pFeature=pFeatureCursor.NextFeature();/此步是将游标中的第一个交给pFeatureif(pFeature=null)/判断是否查到结果/如果没有查到报错并结束MessageBox.Show(没有查询到地物!,查询提示,MessageBoxButtons.OK,MessageBoxIcon.Information);return;axMapControl1.Map.SelectFeature(pLayer,pFeature);/将查询到的地物作为选择对象高亮显示在地图上axMapControl1.CenterAt(pFeature.ShapeasESRI.ArcGIS.Geometry.IPoint);/设置当前查询到的要素为地图的中心axMapControl1.MapScale=pLayer.MinimumScale;/将当前地图的比例尺设置为ILayer的最小显示比例尺axMapControl1.ActiveView.Refresh();/刷新地图,这样才能显示出地物下面我们进行方法的调用:IlayerpLayer=axMapControl1.Map.get_Layer(0);/第一个图层,在地图中第一个图层是医院QueryAndHight(name=市一医院,pLayer);/调用函数,在医院的图层上查询name为市一医院的要素并高量显示在地图上。上面的例子有一个问题,假设我们只知道图层的名字,而不知道索引为多少,这就比较复杂了。所以我们可以提前写一个方法通过名字获得ILayer对象。publicILayerGetLayerByName(stringstrLayerName)ILayerpLayer=null;for(inti=0;i=axMapControl1.LayerCount-1;i+)if(strLayerName=axMapControl1.get_Layer(i).Name)pLayer=axMapControl1.get_Layer(i);break;returnpLayer;这样,我们就可以用以下的方法获得ILayer对象进行查询:ILayerpLayer=GetLayerByName(医院);。上面我们只是进行单要素的查询与显示,但是我们有时候需要获得多个查询结果,这样就需要用到NextFeature方法进行遍历搜索显示,我们在进行高亮显示的时候也能获取要素的属性值,可以将其保存起来。下面就是一个例子:ListstrName=newList();/用来保存name属性,这个可以换成listBox或者comoBox来接受要素的nameIFeatureLayerpFeatureLayer=mainfrm.GetLayerByName(此处为图层的名字)asIFeatureLayer;IQueryFilterpQueryFilter=newQueryFilter();pQueryFilter.WhereClause=namelike%+txtName.Text+%;/模糊查询IFeatureCursorpFeatureCursor=pFeatureLayer.Search(pQueryFilter,false);IFeaturepFeature;pFeature=pFeatureCursor.NextFeature();/获取第一个要素if(pFeature=null)/如果要素为空,则提示并返回MessageBox.Show(没有查询到+txtName.Text+,查询提示,MessageBoxButtons.OK,MessageBoxIcon.Information);return;while(pFeature!=null)strName.Add(pFeature.get_Value(pFeature.Fields.FindField(name).ToString();/将查询出的要素的name属性加到strName中/如果是listbox则可以用listBox1.items.add(.);来将name添加到listbox中。mainfrm.axMapC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东珠海市横琴粤澳深度合作区招聘公办幼儿园教职工(第一批)5人模拟试卷附答案详解
- 2025年黄山市中心血站招聘医学检验人员1人考前自测高频考点模拟试题完整参考答案详解
- 2025广东广州市越秀区建设街招聘辅助人员1人模拟试卷及完整答案详解
- 2025年酒及饮料加工机械项目发展计划
- 2025年度中国科学院国家天文台长春人造卫星观测站招聘(7人)考前自测高频考点模拟试题及答案详解(必刷)
- 2025年马鞍山当涂县公开引进中小学教师65人考前自测高频考点模拟试题及答案详解(全优)
- 2025广西百色市田阳区消防救援大队政府招聘专职消防员9人考前自测高频考点模拟试题及答案详解参考
- 2025年甘肃省武威市凉州区清源镇选聘专业化管理的大学生村文书考前自测高频考点模拟试题及答案详解(夺冠)
- 2025内蒙古鄂尔多斯市委政策研究室所属事业单位引进高层次人才和紧缺专业人才2人模拟试卷及答案详解(新)
- 2025年河北金融学院选聘工作人员60名模拟试卷参考答案详解
- 《华住酒店集团》课件
- 天津大学物理化学教研室《物理化学》(第5版)笔记和课后习题(含考研真题)详解
- 院感及院感管理基本概念课件
- 二年级语文上册-第四单元-集体备课+教学设计+教材分析课件
- 2022-2023学年湖南省部分校高一下学期期末基础学科知识竞赛英语试题(原卷版+解析版无听力音频无听力原文)
- 普通高中学生登记表
- 山西美锦华盛化工新材料有限公司化工新材料生产项目环评报告
- 大体积混凝土裂缝控制大体积混凝土裂缝修复
- GB/T 29776-2013纺织品防虫蛀性能的测定
- GB/T 11901-1989水质悬浮物的测定重量法
- 新世纪福音战士课件
评论
0/150
提交评论