ArcgisAdd-In开发入门实例

1、开发环境

Vs2012+Arcgis10.2+win7 64bit

2、实现代码

首先在VS2012中新建一个解决方案,命名AddInTest。

接着,给解决方案AddInTest新建一个项目:

点击[确定],出现如下界面,点击[Next]。

接着,设置相关信息,并点击[finish]完成。

上图中,class name是类的名称,caption是button显示的文字,category是所属的command的分类,tooltip是鼠标在上面时状态栏显示的文字,description是工具的描述。

项目建成后,文件组织如下图:

将项目的框架改为framework 4.5

Config.esriaddinx是一个XML文件,是一个配置文件,里面包含了项目的相关配置,是自动生成的,内容如下:

view sourceprint?

01.<esri.configuration xmlns="http://schemas.esri.com/Desktop/AddIns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

02.<name>ArcMapAddinTest</name>

03.<addinid>{0f7ec41b-d1e3-4391-8d67-9dea10bea621}</addinid>

04.<description>Type in a description for this Add-in.</description>

05.<version>1.0</version>

06.<img src="" style="display: none;"><img alt="加载中..." title="图片加载中..."src="http://www.it165.net/statics/images/s_nopic.gif">ImagesArcMapAddinTest.png

07.<author>Administrator</author>

08.<company></company>

09.<date>2013/12/12</date>

10.<targets>

11.<target name="Desktop" version="10.0">

12.</target></targets>

13.<addin language="CLR" library="ArcMapAddinTest.dll" namespace="ArcMapAddinTest">

14.<arcmap>

15.<commands><button caption="AddShp" category="Add-In Controls" class="AddShp" id="ArcMapAddinTest_AddShp"image="ImagesAddShp.png" message="点击浏览shp文件并添加" tip="实现添加shp文件的功能"></button></commands></arcmap></addin></esri.configuration>

01.using System;

02.using System.Collections.Generic;

03.using System.Text;

04.using System.IO;

05.

06.

07.namespace ArcMapAddinTest

08.{

09.public class AddShp : ESRI.ArcGIS.Desktop.AddIns.Button

10.{

11.public AddShp()

12.{

13.}

14.

15.protected override void OnClick()

16.{

17.}

18.

19.protected override void OnUpdate()

20.{

21.}

22.}

23.}

里面包含两个方法,onclick和onupdate方法。onclick方法是点击按钮时,我们在里面写添加shp文件的代码。

首先,添加如下引用:

view sourceprint?

1.using System.Windows.Forms;

2.using ESRI.ArcGIS.ArcMapUI;

3.using ESRI.ArcGIS.Carto;

4.using ESRI.ArcGIS.Geometry;

5.using ESRI.ArcGIS.Geodatabase;

6.using ESRI.ArcGIS.DataSourcesFile;

onclick方法里,事件的实现代码如下:

view sourceprint?

01.IMxDocument pMxd;

02.public Button1()

03.{

04.pMxd = ArcMap.Document as IMxDocument;

05.}

06.

07.protected override void OnClick()

08.{           

09.System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog();

10.openFileDialog.Filter = "shp(*.shp)|*.shp";

11.openFileDialog.InitialDirectory = @"D:";

12.openFileDialog.Multiselect = false;

13.DialogResult pDialogResult = openFileDialog.ShowDialog();

14.if (pDialogResult != DialogResult.OK)

15.{

16.return;

17.}

18.string pPath = openFileDialog.FileName;

19.string pFolder = System.IO.Path.GetDirectoryName(pPath);

20.string pFileName = System.IO.Path.GetFileName(pPath);

21.

22.IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();

23.IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pFolder, 0);

24.IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;

25.IFeatureClass pFC = pFeatureWorkspace.OpenFeatureClass(pFileName);

26.IFeatureLayer pFLayer = new FeatureLayerClass();

27.pFLayer.FeatureClass = pFC;

28.pFLayer.Name = pFC.AliasName;

29.ILayer pLayer = pFLayer as ILayer;

30.IMap pMap = pMxd.FocusMap;

31.pMap.AddLayer(pLayer);

32.

33.//

34.//  TODO: Sample code showing how to access button host

35.//

36.ArcMap.Application.CurrentTool = null;

37.}

OnUpdate方法事件的代码如下:

view sourceprint?

1.protected override void OnUpdate()

2.{

3.Enabled = pMxd.FocusMap.LayerCount >= 0;

4.}

代码编写完成后,编译程序,打开编译目录,编译文件如下:

双击.esriAddIn文件,添加工具到Arcmap中。打开Arcmap,打开扩展管理,command选项卡,找到Add-In Controls,这时候你会发现你编写的工具会出现在这一组里面。

点击[close],点点试试……

时间: 2024-10-13 01:41:41

ArcgisAdd-In开发入门实例的相关文章

spring mvc开发入门实例demo源代码下载,很适合新手入门学习用。

原文:spring mvc开发入门实例demo源代码下载,很适合新手入门学习用. 源代码下载:http://www.zuidaima.com/share/1550463469046784.htm Eclipse + Maven + Spring MVC - Simple Example 源代码框架截图:

IOS开发入门实例

关于如何创建第一个 iOS 应用 本篇“第一个 iOS 应用”教程将向你介绍 iOS 应用开发中的“三个T”: Tools(工具)如何利用 Xcode 创建和管理工程. Technologies(技术)如何创建能够响应用户输入的应用. Techniques(技巧)如何充分利用 iOS 应用开发的基础设计模式. 当你完成本教程的所有步骤之后,你的应用看起来会和下边图中的差不多: 从图中可以看到,你创建的应用界面上有三个主要的元素: 一个文本框(用户把文字输入到这里) 一个标签(这里可以用来显示信息

JPA开发入门实例

一. 什么是JPA JPA是sun官方提出的Java持久化规范, 它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据, 它的出现主要是为了简化现有的持久化开发工作和整合ORM技术. JPA总体思想和现有的Hibernate.TopLink等ORM框架大体一致. 总的来说, JPA包括以下3方面的技术: 1. ORM映射元数据(JPA支持XML和注解两种元数据的形式) - 元数据描述对象和表之间的映射关系. 2. Java持久化API: 用来操作实体对象, 执行CRUD

【转】Android NDK开发入门实例

写这个,目的就是记录一下我自己的NDK是怎么入门的.便于以后查看,而不会忘了又用搜索引擎一顿乱搜.然后希望能够帮助刚学的人入门. 先转一段别人说的话: “NDK全称:Native Development Kit. 1.NDK是一系列工具的集合. * NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.这些工具对开发者的帮助是巨大的. * NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU.平台.ABI等差异,开发人员只需要简单修

Android NDK开发入门实例

AndroidNDK是能使Android应用开发者把从c/c++编译而来的本地代码嵌入到应用包中的一系列工具的组合. 注意: AndroidNDK只能用于Android1.5及以上版本中. I. Android NDK 目标: Android虚拟机允许你的应用在源码中通过JNI调用本地代码(c/c++)中实现的方法们.概括起来,这表示: --你的应用的java源代码中要声明一个或多个方法,这些方法前面需有'native'关键字,这表明它们被本地代码实现.如: [java] view plainc

destoon入门实例与常见问题汇总

destoon入门实例与常见问题 收集了一些destoon入门实例与常见问题,大家做个参考.转自:http://blog.csdn.net/vip_linux/article/details/37833963 链接如下: destoon忘记后台密码怎么办?destoon找回管理员密码 忘记destoon管理员后台账号密码怎么办?解决方法 destoon如何实现调用自增数字从1开始 destoon底部添加你是第几位访问者 destoon调用热门关键字的例子 destoon首页怎么调用求购供应信息的

destoon入门实例与常见问题

收集了一些destoon入门实例与常见问题,大家做个参考. 链接如下: destoon忘记后台密码怎么办?destoon找回管理员密码 忘记destoon管理员后台账号密码怎么办?解决方法 destoon如何实现调用自增数字从1开始 destoon底部添加你是第几位访问者 destoon调用热门关键字的例子 destoon首页怎么调用求购供应信息的地区名称? destoon教程之destoon数据库表说明 destoon教程之首页显示供应.企业.资讯条数 destoon开发公司新闻详细页并添加评

Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附详细代码] 标签: SparkECLIPSEJAVAMAVENwindows 2016-06-18 22:35 405人阅读 评论(0) 收藏 举报  分类: spark(5)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 前言 本文旨在记录初学Spark时,根据官网快速

DWR之入门实例(一)

DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选的commons-