ArcGis Engine二次开发入门(1)

对矢量图层的字段:进行增加、删除和查找及读取相应字段的属性值,鹰眼实现


// 添加字段
        private void button5_Click(object sender, EventArgs e)
        {
            IFeatureLayer myLayer = axMapControl1.Map.get_Layer(0) as IFeatureLayer;
            IFeatureClass myClass = myLayer.FeatureClass;
            IFieldEdit field = new FieldClass();
            field.Name_2 = "wwx";
            field.Type_2 = esriFieldType.esriFieldTypeString;
            field.Length_2 = 10;
            myClass.AddField(field as IField);
            MessageBox.Show("添加字段完成!");
        }

        // 删除字段
        private void button6_Click(object sender, EventArgs e)
        {
            IFeatureLayer myLayer = axMapControl1.Map.get_Layer(0) as IFeatureLayer;
            IFeatureClass myClass = myLayer.FeatureClass;
            IFields fds = myClass.Fields;
            IField fd = fds.get_Field(4);
            myClass.DeleteField(fd);
            MessageBox.Show("删除字段完成!");
        }

        // 字段查找
        private void button2_Click(object sender, EventArgs e)
        {
            IFeatureLayer myLayer = axMapControl1.Map.get_Layer(0) as IFeatureLayer;
            IFeatureClass myClass = myLayer.FeatureClass;
            int index = myClass.FindField("KIND");
            MessageBox.Show(index.ToString());

        }

        // 读取属性值
        private void button1_Click(object sender, EventArgs e)
        {
            IFeatureLayer myLayer = axMapControl1.Map.get_Layer(0) as IFeatureLayer;
            IFeatureClass myClass = myLayer.FeatureClass;
            IFeature fea = myClass.GetFeature(6);
            int index = myClass.FindField("NAME");
            string name = Convert.ToString(fea.get_Value(index));
            //byte[] temp = Encoding.GetEncoding("ISO8859-1").GetBytes(name);
           // byte[] temp = Encoding.GetEncoding("GbK").GetBytes(name);
           // 这里读取shp文件出现了中文乱码,不知道怎么回事  
            //name = Encoding.Default.GetString(temp);
            MessageBox.Show(name);
        }

鹰眼实现代码:


        private void axMapControl1_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e)
        {
            IEnvelope pEnv;
            pEnv = e.newEnvelope as IEnvelope;
            IGraphicsContainer graphicscontainer;
            IActiveView activewer;
            graphicscontainer = axMapControl2.Map as IGraphicsContainer;
            activewer = graphicscontainer as IActiveView;
            graphicscontainer.DeleteAllElements();
            IElement plement;
            plement = new RectangleElementClass();
            plement.Geometry = pEnv;

            IRgbColor rgbcol = new RgbColorClass();
            rgbcol.RGB = 255;
            rgbcol.Transparency = 255;
            ILineSymbol poutline = new SimpleLineSymbolClass();
            poutline.Width = 1;
            poutline.Color = rgbcol;
            IRgbColor pcolor = new RgbColorClass();
            pcolor.RGB = 255;
            pcolor.Transparency = 0;
            IFillSymbol fillsym = new SimpleFillSymbolClass();
            fillsym.Color = pcolor;
            fillsym.Outline = poutline;

            IFillShapeElement pfillshapeelement;
            pfillshapeelement = plement as IFillShapeElement;
            pfillshapeelement.Symbol = fillsym;

            plement = pfillshapeelement as IElement;
            graphicscontainer.AddElement(plement, 0);
            activewer.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
        }

 

ArcGIS Engine开发从入门到精通》讲解是基于ArcGIS Engine 9.3开发平台,介绍了相关的开发技术和工程应用,并用C#语言编程实现了工程实例。《ArcGIS Engine开发从入门到精通》共4篇分18章,第一篇基础篇(第1~9章)集中介绍了 ArcGIS Engine基础知识,包括开发基础组件对象模型、ArcGIS Engine介绍、基于.NET的ArcGIS Engine的开发,ArcGIS Engine中的控件、框架控件介绍、控件使用实例等,为以后应用ArcGIS Engine的各种接口,快速地实现系统的开发打下坚实的基础;第二篇应用提高篇(第10~12章)介绍了ArcGIS Engine的应用框架、空间分析、ArcGIS Server服务、三维模式数据编辑等高级应用,通过学习这些高级应用可以使读者得心应手地完成各种GIS系统的开发;第三篇综合实例篇(第13章~第14章)用两个综合例子将前面讲解的知识点串起来,让读者将学习的知识点融合起来,以便可以胜任项目开发的角色;第四篇常见疑难解答与经验技巧集萃(第15~18章),本篇将一些开发过程中常见的异常、数据库连接与释放、数据加载以及一些经验技巧做了介绍,本篇的例子主要是对开发过程中常碰到的问题和实战技巧进行了汇总解答,以便帮助读者提高工作效率。, 《ArcGIS Engine开发从入门到精通》从开发者的角度,全面讨论了ArcGIS Engine开发的知识,让读者了解和掌握ArcGIS Engine开发的实战技术,无论是想对ArcGIS Engine入门还是对ArcGIS Engine感兴趣的GIS人员,都能从《ArcGIS Engine开发从入门到精通》中得到提高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值