IFeatureLayer】的更多相关文章

刚开时学习 Engine 开发时,对于这几个接口之间的关系总是理不清,因此写下这篇文章做个总结. 是什么 在 engine 开发中,我觉得使用过程中应该将每个接口对应到 ArcMap 中的具体事物中,这才能对它们有深刻的认识,那么,这几个接口代表的事物是什么呢? IMap 这相对来说比较好理解,Map就是许多图层的集合,就像 ArcMap 中的 MXD文档一样,可以包括许多图层 Layer. ILayer Layer 是图层对象,是数据的外壳,必须建立在数据的基础上才有意义.在 ArcMap 中…
  All Properties Methods Inherited Non-inherited Description AreaOfInterest The default area of interest for the layer. Cached Indicates if the layer needs its own display cache. DataSourceType Data source type. DisplayField Primary display field. Dr…
四个解决方案: 1.IFeatureCursor 游标查询后,遍历删除 2.更新游标删除IFeatureCursor.DeleteFeature() 3.ITable.DeleteSearchedRows删除 4. IDataset.Workspace.ExecuteSQL 一.  几种删除方法的代码 1.  查询结果中删除 private void Delete1(IFeatureClass PFeatureclass)        {            IQueryFilter pQu…
空间查询功能是通过用户选择的空间几何体以及该几何体与当前地图中要素之间的几何关系进行空间查找,从而得到查询结果的操作. 相关类与接口 空间查询相关的类主要是SpatialFilter类,其实现的接口主要为ISpatialFilter接口.SpatialFilter类是空间关系过滤类,ISpatialFilter接口的成员主要用于返回和修改数据过滤器所使用的空间关系.ISpatialFilter接口同时包含了空间和属性两种查询约束,它继承了IQueryFilter接口. 1.Geometry属性:…
属性查询即基于空间数据的属性数据的查询,通过用户提交SQL语言中的where语句定义的查询条件,对属性数据进行搜索,从而得到查询结果的操作. 相关的类与接口 与属性查询功能相关的类主要有QureyFilter.QueryDef.Cursor.FeatureCursor等.涉及的接口有IQueryFilter.IQueryDef.ICursor.IFeatureCursor以及IFeatureSelection等.以上的类和接口都位于ArcGIS.Geodatabase命名空间中. 1.Query…
鹰眼是GIS软件的必备功能之一.它是一个MapControl控件,主要用来表示数据视图中的地理范围在全图中的位置. 鹰眼一般具有的功能: 1)鹰眼视图与数据视图的地理范围保持同步. 2)数据视图的当前范围能够在鹰眼视图中用一个矩形框标示出来.若数据视图的显示范围发生变化,鹰眼视图中的矩形框位置也会发生变化. 3)在鹰眼中操作视图,数据视图中的地理范围也将同步调整.当鹰眼中用鼠标点击时,数据视图能够移动到被点击的位置.拖动矩形框可以调整数据视图中的地图显示范围:在鹰眼视图上拖动矩形框时,数据视图能…
ArcGIS Engine开发中数据库的加载 1.加载个人地理数据库数据 个人地理数据库(Personal Geodatabase)使用Miscrosoft Access文件(*.mdb)进行空间数据的存储和管理,它将不同的数据统一纳入Access文件中,便于数据的管理与迁移,容量限制为2GB.个人地理数据库支持单用户编辑,不支持版本管理.在进行ArcGIS软件操作和开发的学习过程中,一般建议采用个人地理数据库进行数据的 组织和存储,同时也便于直接导到ArcSDE空间数据库中.加载个人地理数据库…
地图数据的加载 一.加载Shapefile数据 Shapefile文件是目前主流的一种空间数据的文件存储方式,也是不同GIS软件进行数据格式转换常用的中间格式.加载Shapefile数据的方式有两种:①通过工作空间加载.②通过MapControl控件的AddShapefile方法加载. 1.通过工作空间加载Shapefile文件 通过工作空间加载Shapefile文件主要用到IMap.ILayer.IFeatureLayer和IFeatureClass四个接口. 1)IMap接口 IMap接口是…
出错代码: AxMapControl pMptrl = new AxMapControl(); //add data string mdbPath = string.Format("{0}\\line.mdb", Application.StartupPath); IWorkspaceFactory pWFS = new AccessWorkspaceFactoryClass(); IWorkspace pWS = pWFS.OpenFromFile(mdbPath, ); if (p…
DevExpress控件的GridControl控件小结 (由于开始使用DevExpress控件了,所以要点滴的记录一下) 1.DevExpress控件组中的GridControl控件不能使横向滚动条有效.现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容. 解决: gridView1.OptionsView.ColumnAutoWidth属性是true,即各列的宽度自动调整,你把它设成false,就会出现了. 2.使单元格不可编辑. gridcontrol --…
为了解决鼠标移过动态显示要素属性的问题,我在网上先是查到的只能显示单个要素的属性,就是直接在arcmap中设置好的那个tips就可以显示,但是这种显示效果只是简单的实现了显示要素的属性值,可是没有对该要素的描述. 为了在程序中实现这种效果,代码可写为: private void axMap_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e) { stFirst.Text = " 比例尺 1 : " + ((…
文转载自hymyjl2010<Arcengine效率探究之二——属性的更新>   修改一批要素的属性有多种方法,当数据量较大时,若选择不当可能会大大影响速度. 一.IRowBuffer 方法 此法适用于将一批数据更新为某一相同的属性. IQueryFilter pFilter = new QueryFilterClass();pFilter.WhereClause = "Z='T'";pFilter.SubFields = "Z";int nIndex…
原发表于ESRI中国社区,转过来.我的社区帐号:jhlong http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=122097 ----------------------------------------我是分割线,下面才是正文--------------------------------------------------------   1.说明6周年征文 似乎就我这一篇ArcEngine开发的,搞开发的很少么?还是搞开发的都不善于言语…
同学做毕设,要求我帮着写个ArcGIS插件,实现功能为:遍历所有图斑,提取相邻图斑的公共边长及其他属性(包括相邻图斑的ID),链接到属性表中.搞定后在这里做个记录.本文分两大部分: ArcGIS插件开发流程 实际案例分享 一.ArcGIS插件开发流程 该部分不涉及具体业务,力求以最快速度了解ArcGIS Add-in插件从开发到使用的具体流程. 1.新建项目 2.编写业务代码 3.编译 4.安装插件      5.使用插件 二.实际案例分享 上面已经说了,案例来源于实际的需求,此处想必没有比直接…
mapcontrol 遍历所有图层方法 2011-04-29 19:51 通过IMap中的get_layers()可以遍历MapControl中当前的图层.此方法可以通过指定UID对图层进行过滤或者分类.   1. 遍历矢量图层       public IEnumLayer GetFeatureLayers()         {             UID uid = new UIDClass();             uid.Value = "{40A9E885-5533-11d0…
1.加载Shapefile数据 1 IWorkspaceFactory pWorkspaceFactory; 2 IFeatureWorkspace pFeatureWorkspace; 3 IFeatureLayer pFeatureLayer; 4 5 //获取当前路径和文件名 6 OpenFileDialog dlg = new OpenFileDialog(); 7 dlg.Filter = "Shape(*.shp)|*.shp|All Files(*.*)|*.*"; 8…
符号化之Renderer( 渲染)体系 ArcGIS Engine9.3对GIS数据的符号化分为矢量数据渲染和栅格数据渲染两大类.接下来分别介绍FeatureRender和RasterRender. 1.FeatureRender对象    FeatureRenderer是一个抽象类,它有15个子类负责进行不同类型的着色运算.它们都实现了IFeatureRenderer接口,这个接口定义了进行要素图层符号化的公共属性和方法.    可以通过IGeoFeatureLayer::Renderer属性…
/// <summary> /// 根据查询条件构造/// </summary> /// <param name="where">查询条件</param> public void FilterLayer(string where) { IFeatureLayer flyr = (IFeatureLayer)axMapControl1.get_Layer(0); IFeatureClass fcls = flyr.FeatureClass;…
using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using ESRI.ArcGIS.ADF.BaseClasses; using ESRI.ArcGIS.ADF.CATIDs; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.esriSys…
using System; using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;using ESRI.…
using System; using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;using ESRI.ArcGIS.ADF.BaseClasses;using ESRI.ArcGIS.ADF.CATIDs;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.e…
(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数 ESRI.ArcGIS.esriSystem.IPropertySet pPropSet=new PropertySetClas…
link: http://www.cnblogs.com/Jingkunliu/archive/2013/01/10/2854710.html PartialRefresh方法是部分刷新,效率方面比单纯的Refresh方法高很多.调用Refresh总是绘画毎一个对象.这是非常低效的.所以应该多使用PartialRefresh方法而少用Refresh. 刷新图层:    pMap.PartialRefresh(esriViewGeography, pLayer, null); 刷新所有图层:   …
1.加载Shapefile数据 IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureLayer pFeatureLayer; //获取当前路径和文件名 OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Shape(*.shp)|*.shp|All Files(*.*)|*.*"; dlg.Title = &quo…
private void AddLabel(IFeatureLayer pLayer,string fieldname,ITextSymbol Symbol) { container.DeleteAllElements(); IFeatureClass pClass = pLayer.FeatureClass; IFields pFields = pClass.Fields; int index = pFields.FindField(fieldname); ITextElement pText…
GP的功能非常强大,也是GIS建模的一个很重要的工具.在Arcengine中,实现Clip功能很多种方法,可以用IBasicGeoprocessor的clip方法,但是GP无疑是最简单的. public Clip( objectin_cover, objectclip_cover, objectout_cover ) 输入这三个参数,即可实现clip功能,第一个参数为输入要素,第二个为裁剪要素,最后为保存路径  string SavePath= @"F:\shiyan\最后的战役\ww2.shp…
空间插值一般都会用到IInterPolationOP接口等 首先是通过图层的名称获取图层的方法: private ILayer GetLayerByName(string name)        {            ILayer layer = null;            for (int i = 0; i < axmapcontrol.Map.LayerCount; i++)            {                if (name == axmapcontrol…
1,利用combobox创建色带,首先draw private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)        {         Rectangle rec=   e.Bounds;         rec.Width = rec.Width /array.Length;        string fromColor = comboBox1.Items[e.Index].ToString().Split('…
第一步:新建另外一个窗体 首先要定义一个全局变量 ILayer. 窗体要带参数,以便将 ILayer 传递过来. 获取属性列表. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; u…
public override void OnMouseDown(int Button, int Shift, int X, int Y) { // TODO: Add Cut.OnMouseDown implementation if(Button==1)//左键按下 { //拿到hook IMapControl3 pMapControlx = (IMapControl3)m_hookHelper.Hook; IFeatureLayer pFeatureLayer = pMapControlx…