许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  ArcGIS Add-In开发入门及实例开发

ArcGIS Add-In开发入门及实例开发

阅读数 8
点赞 0
article_banner

0 写在前面

Arcgis 10的版本之后,ESRI公司推出了很方便的Add-In插件式开发,是一种能够快速扩展桌面应用程序功能的全新扩展方式。作为ArcGIS 10中全新定制方法,它有以下特点

  • 容易创建:ArcGIS提供了很多创建Add-In模板,并提供了详细的接口以实现各种功能。
  • 更易共享:Add-In本质上是一个Zip压缩文件这个压缩文件里面包含了,易于网络、邮件传输、易于局域网内共享。
  • 更加安全:可以对Add-In文件进行数字签名,使用的安全性得到保障。
  • 更易安装管理:只要安装有桌面软件,系统就能自动识别Add-In文件,双击即可安装部署,同时desktop也有用于管理Add-In的管理工具。

ArcGIS Add-In支持的类型包括:

  • 按钮和工具
  • 组合框
  • 菜单和右键菜单
  • Multi-items
  • 工具条
  • Tool palettes
  • 可停靠窗体
  • Application extensions
  • Editor extensions

1 开发环境




Microsoft .Net Framework 4可以在微软官网下载,依据提示按部就班安装。

Visual Studio 2012安装和破解可以参考博客VS2012安装介绍

Add-In开发实际依赖于ArcObjects,在开发之前请确保正确安装了ArcObjects SDKs
ArcObjects SDKs安装可以启动ArcGISArcGIS Server安装包下的Esri.exe程序,在出现的安装界面上选择安装ArcObjects SDKs的类型。由于选用C#语言开发,选择安装ArcObjects SDKs for Microsoft .Net Framework
在这里插入图片描述

2 Add-In开发

本文以一个简易功能按钮Add-In开发为实例,详细说明Add-In开发流程。

   该按钮的主要功能为,打开一个指定的文件夹,并从中浏览加载shp格式文件。

STEP 1:新建项目

打开VS 2012,点击文件-新建-项目,在弹出的面板中选择.NET Framework 4Add-In类型选择Visual C#。可以修改项目名称及其保存位置。
在这里插入图片描述

   可以修改Add-In的名字。
在这里插入图片描述

   修改Add-In类别为Button,修改类名为AddShp,可以修改该工具的提示框及描述。完成新建项目。
在这里插入图片描述

STEP 2:编码开发

新建项目后,生成的项目结构如下,编码开发主要在AddShp.cs中完成。AddShp.cs中默认生成的代码如下。
在这里插入图片描述在这里插入图片描述

   往AddShp.cs中添加添加依赖及功能代码,代码如下。

   相比于默认代码,该代码主要重写了OnClick函数。

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

using System.Windows.Forms;
using ESRI.ArcGIS.ArcMapUI;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesFile;

using ESRI.ArcGIS.Display;

namespace ArcMapAddin1
{
    public class AddShp : ESRI.ArcGIS.Desktop.AddIns.Button
    {
        IMxDocument pMxd;
        public AddShp()
        {
            pMxd = ArcMap.Document as IMxDocument;
        }

        protected override void OnClick()
        {
            System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog();
            openFileDialog.Filter = "shp(*.shp)|*.shp";
            openFileDialog.InitialDirectory = @"D:\extent\";

            openFileDialog.Multiselect = false;
            DialogResult pDialogResult = openFileDialog.ShowDialog();
            if (pDialogResult != DialogResult.OK)
            {
                return;
            }
            string pPath = openFileDialog.FileName;
            string pFolder = System.IO.Path.GetDirectoryName(pPath);
            string pFileName = System.IO.Path.GetFileName(pPath);

            IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();
            IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pFolder, 0);
            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
            IFeatureClass pFC = pFeatureWorkspace.OpenFeatureClass(pFileName);
            IFeatureLayer pFLayer = new FeatureLayerClass();
            pFLayer.FeatureClass = pFC;
            pFLayer.Name = pFC.AliasName;
            ILayer pLayer = pFLayer as ILayer;
            IMap pMap = pMxd.FocusMap;
            pMap.AddLayer(pLayer);

            //
            //  TODO: Sample code showing how to access button host
            //
            ArcMap.Application.CurrentTool = null;
        }
        protected override void OnUpdate()
        {
            Enabled = pMxd.FocusMap.LayerCount >= 0;
        }
    }

}

:添加依赖以后,会出现类似命名空间ESRI.ArcGIS不存在类型或命名空间***。是否缺少程序集引用?的情况,遇到这个问题可以通过右键项目结构中的引用-添加引用,把相应的程序集添加至项目中即可。
在这里插入图片描述
在这里插入图片描述:代码中提示无法嵌入互操作类型ESRI.ArcGIS.Carto.FeatureLayerClass,请改用适用的接口,需要在项目目录中的引用菜单下找到相应的依赖,并且修改其嵌入互操作类型属性为False
在这里插入图片描述

STEP 3:代码编译

代码开发完毕以后,右键单击项目,选择生成,代码编译并在项目保存位置下生成esriAddIn文件。esriAddIn文件具体路径为项目保存位置/ArcMapAddin4/bin/Debug
在这里插入图片描述

3 Add-In安装及卸载

安装使用Add-In需要两步:

  1. 安装Add-In:双击esriAddIn文件,在弹出窗口点击Install Add-In即可安装。
  2. ArcMap中添加Add-In:在ArcMap自定义-自定义模式下将Add-In拖拽至默认的工具条上或者自定义的工具条。

在这里插入图片描述在这里插入图片描述

   想要删除Add-In,只需打开ArcMap自定义-加载项管理器,将加载的Add-In删除即可。
在这里插入图片描述

4 参考

https://www.bbsmax.com/A/l1dyeLebde/


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空