ArcGIS Desktop开发框架快速搭建【一】

原创 2013年12月05日 11:41:30

ArcGIS对基于桌面产品Desktop开发提供了两种方式:Desktop Add-insExtending ArcObjectsAdd-Ins开发方式是最大化使用桌面产品现有的功能,安装部署方便;但在AO扩展、界面定制上不如Extending方式强大、灵活。本文主要介绍如何使用donet工程提供的Extending ArcObjects模板构建一个Desktop开发框架

 

模板工程建立

 

    创建 Windows ApplicationDesktop)工程

 

 

添加使用的ArcGIS类库,下一步继续。这一步在此处可以跳过,在代码编写过程中再添加用到的类库。

 

 

勾选工程所需的ArcGIS产品级别及相关的功能扩展。ArcGIS桌面产品开发提供了ArcVIewArcEditorArcInfo三个产品级别,如下图选择了ArcInfo;在Extensions列表中可以选择程序所使用的ArcGIS扩展,如果工程要做三维开发、网络分析功能开发则需要勾选3DAnalystNetwork Analyst,如下图所示。

 

 

启动ArcMap进程

 

在启动系统登录前可先做个用户验证,在验证过程中启动ArcMap进程。

 

 

 

具体代码如下:

 

       privatevoid btnLogin_Click(object sender, EventArgs e)

 

       {

 

           //用户登录验证过程

 

           //*************

 

           //***************

 

           newProjectStart().ProjectStart();

 

           this.Hide();

 

           System.Environment.Exit(0);

 

       }

 

 

 

    public classProjectStart

 

    {

 

        public void StartProject ()

 

        {

 

            //启动ArcMap进程

 

            IDocumentdoc = newMxDocumentClass();

 

            IApplication m_ArcGisApp = doc.Parent;

 

            m_ArcGisApp.Caption = 信息管理系统“;

 

            m_ArcGisApp.Visible =true;

 

        }

 

    }

 

 

 

启动界面如下图所示

 

添加自定义菜单

 

向工程中添加工程类库

 

向新建的类库中添加两个Button按钮cmd1cmd2

 

 

 

重复上面的步骤在添加一个按钮,至此新建的类库中便有了两个按钮cmd1cmd2

 

双击打开其中一个按钮的代码文件,如打开cmd1.cs,如下图所示

 

其中,GuidProgId是系统自动建立的,保持默认不去修改;而,m_categorym_captionm_messagem_tooltipm_name可根据需要自行修改。

 

下面要做的是在启动ArcMap时将这些按钮添加的ArcMap界面上

 

       publicvoid StartProject()

 

       {

 

            IDocument doc = newMxDocumentClass();

 

            IApplication m_ArcGisApp = doc.Parent;

 

            ICommandBar cmdBar = (ICommandBar)doc.CommandBars.Find(“Main menu, false, false);

 

            //添加自定义按钮

 

            UID cmdUid = newUIDClass();

 

            object bj = null;

 

            cmdBar = cmdBar.CreateMenu(自定义1, refobj);

 

            cmdUid.Value = “{d40ae57e-0ca9-4e26-a78a-58eade156816};

 

            cmdBar.Add(cmdUid, ref obj).Style. = esriCommandStyles.esriCommandStyleIconAndText;

 

            cmdUid = newUIDClass();

 

            cmdUid.Value = “{27f74b3b-fa26-4389-88d8-2495a13ca1a1};

 

            cmdBar.Add(cmdUid, ref obj).Style. = esriCommandStyles.esriCommandStyleIconAndText;

 

            m_ArcGisApp.Caption = 信息管理系统;

 

            m_ArcGisApp.Visible = true;

 

       }

 

运行界面如下:

 

清除ArcMap原有菜单

 

    很多情况下,系统的界面是根据我们实际的需求重新定制的,所以需要我们将原有的菜单、工具条全部清除掉。在程序中添加下面代码即可完成清除所有的菜单、按钮。

 

IDocumentdoc = newMxDocumentClass();

 

IApplicationm_ArcGisApp = doc.Parent;

 

doc.CommandBars.HideAllToolbars();

 

intpcount = cmdBar.Count;

 

//清理菜单

 

 for (int i = pcount-1;i>-1 ; –i)

 

 {

 

     ICommandItem p = cmdBar[i];

 

     p.Delete();

 

 }

 

 doc.CommandBars.HideAllToolbars();

 

还有些时候,我们要实现的功能ArcMap已经自带,这样我们在定制界面的时候可以保留这部分功能,减少系统开发工作量。

 

    保留文件菜单、视图菜单内容,代码如下

 

IDocumentdoc = newMxDocumentClass();

 

IApplicationm_ArcGisApp = doc.Parent;

 

doc.CommandBars.HideAllToolbars();

 

intpcount = cmdBar.Count;

 

//清理菜单

 

 for (int i = pcount-1;i>-1 ; –i)

 

 {

 

     ICommandItem p = cmdBar[i];

 

    if (p.Name != “View_Menu && p.Name != “File_Menu)

 

     p.Delete();

 

 }

 

 doc.CommandBars.HideAllToolbars();

至此一个ArcGISDesktop开发框架搭建完毕,至于界面上有哪些按钮、菜单、工具条等需要根据实际的系统开发需求来规划、定制。

 

相关文章推荐

常用开源GIS项目

常用开源GIS项目 常用开源桌面GIS软件 QGIS 始于2002年5月,算得上是开源GIS平台中的后起之秀。界面友好,分析功能可与GRASS GIS相媲美。 ...
  • ZXGIS
  • ZXGIS
  • 2014年01月02日 09:52
  • 12880

GIS 整体框架介绍

GIS整体框架介绍 ArcGIS Server是一个发布企业级GIS应用程序的综合平台,提供了创建和配置GIS应用程序和服务的框架,可以满足各种客户端的各种需求,这是对 ArcGIS Serve...
  • muzai
  • muzai
  • 2010年04月13日 18:22
  • 2187

arcgis 计算经纬度的面积

原文地址:经纬度坐标的shape面层计算面积的详细步骤作者:南北极GIS (1)运行ArcGis/ArcToolsBox,选择Projections/Define ProjectionW...

ArcGIS Engine的开发到底难不难

ArcGIS Objects类库号称世界第二大类库,而ArcGIS Engine的类库是源自于ArcGIS Objects的类库,它把核心的与常用的类库都囊括了进来。对于初学者而言,面对如此多的类库及...

ArcGIS Desktop开发框架快速搭建【二】

功能开发示例       无论你是用AO还是AE开发,或是采用Add-ins还是Extending ArcObjects模式都只是系统结构模式的区别,具体的功能开发上调用的都是ArcGIS类库...
  • SYDBC
  • SYDBC
  • 2013年12月05日 11:46
  • 1591

在Ubuntu11.10Desktop下快速搭建Qt开发环境

本文描述在Ubuntu11.10Desktop下快速搭建一个Qt的开发环境。我的主机环境:Mac OSX 10.7 Lion(64bit), 虚拟机环境为:VirtualBox4.1.6+Ubuntu...
  • dyw
  • dyw
  • 2012年01月05日 22:47
  • 2912

MyEclipse8.5快速搭建SSH框架

  • 2015年11月04日 10:50
  • 1.43MB
  • 下载

快速搭建SSH2框架环境

  • 2016年06月07日 14:26
  • 718KB
  • 下载

在Windows7/10上快速搭建深度学习框架Caffe开发环境

在Windows7/10上快速搭建深度学习框架Caffe开发环境

Myeclipse中,SSH框架快速搭建

  • 2015年09月11日 15:09
  • 1.7MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ArcGIS Desktop开发框架快速搭建【一】
举报原因:
原因补充:

(最多只允许输入30个字)