概述
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
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 Add-In开发入门及实例开发0 写在前面1 开发环境2 Add-In开发3 Add-In安装及卸载4 参考所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复