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 extensionsEditor extensions
1 开发环境
Microsoft .Net Framework 4
ArcObjects SDKs for Microsoft .Net Framework 10.2
Visual Studio 2012
Win 10 64bit
Microsoft .Net Framework 4可以在微软官网下载,依据提示按部就班安装。
Visual Studio 2012安装和破解可以参考博客VS2012安装介绍。
Add-In开发实际依赖于ArcObjects,在开发之前请确保正确安装了ArcObjects SDKs。
ArcObjects SDKs安装可以启动ArcGIS或ArcGIS 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 4,Add-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需要两步:
- 安装
Add-In:双击esriAddIn文件,在弹出窗口点击Install Add-In即可安装。 - 在
ArcMap中添加Add-In:在ArcMap自定义-自定义模式下将Add-In拖拽至默认的工具条上或者自定义的工具条。


想要删除Add-In,只需打开ArcMap自定义-加载项管理器,将加载的Add-In删除即可。

4 参考
https://www.bbsmax.com/A/l1dyeLebde/
最后
以上就是谨慎含羞草最近收集整理的关于【转载】ArcGIS Add-In开发入门及实例开发0 写在前面1 开发环境2 Add-In开发3 Add-In安装及卸载4 参考的全部内容,更多相关【转载】ArcGIS内容请搜索靠谱客的其他文章。
发表评论 取消回复