• ArcObjects使用AddLayer方法添加到图层的方法


    运行坏境:vs2010,ArcGID10.1

    AO中,通过AddLayer方法添加图层的代码如下:

    1        IWorkspaceFactory workSpaceFactory = new ShapefileWorkspaceFactoryClass();
    2             IFeatureWorkspace featureWorkspace = workSpaceFactory.OpenFromFile(@"D:\Program Files\ArcGIS\Desktop10.1\ArcGlobeData", 0) as IFeatureWorkspace;
    3             IFeatureLayer featureLayer = new FeatureLayerClass();
    4             featureLayer.FeatureClass = featureWorkspace.OpenFeatureClass("continent.shp");
    5             //featureLayer.Name = featureLayer.FeatureClass.AliasName;
    6             this.axMapControl1.AddLayer(featureLayer as ILayer);
    7             this.axMapControl1.Refresh();

    需要添加的命名空间有:

    using ESRI.ArcGIS.Geodatabase;
    using ESRI.ArcGIS.Carto;
    using ESRI.ArcGIS.DataSourcesFile;
    

     其中,IWorkspaceFactory,IFeatureWorkspace属于ESRI.ArcGIS.Geodatabase这个命名空间, IFeatureLayer属于ESRI.ArcGIS.Carto命名空间,ShapefileWorkspaceFactoryClass则属于ESRI.ArcGIS.DataSourcesFile这个命名空间。

    生成解决方案的时候会出现这样的错误:

    这就是嵌入互操作的错误,解决方法如下:

     在解决方案资源管理器中找到FeatureLayerClass和ShapefileWorkspaceFactoryClass所引用的命名空间,即ESRI.ArcGIS.Carto和ESRI.ArcGIS.DataSourcesFile,右键选择属性,将嵌入互操作类型改为false,这样就OK了,生成成功!

    但是在运行的时候,还会弹出这样一个错误:

    说的很清楚,ArcGIS的版本指定不明确,所以在Program.cs中添加

    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);

    这样一句话就OK了,如下所示:

    static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
                Application.Run(new Form1());
            }


    这样,整个应用程序就都运行成了!

  • 相关阅读:
    Eureka源码分析
    从零搭建一个SpringCloud项目之Sleuth+Zipkin(六)
    从零搭建一个SpringCloud项目之Config(五)
    spring-boot-lll-starter自动化框架介绍
    大数据量分批执行封装
    itext7史上最全实战总结
    springboot-lll-starter限流说明
    研究javax.validation.constraints.NotNull运行原理
    Nacos入门
    错误日志告警实战
  • 原文地址:https://www.cnblogs.com/zhzhx/p/3015033.html
Copyright © 2020-2023  润新知