中国地图
GIS探索者
遥感影像纠正
GIS论坛
网站首页| GIS论坛 |新闻动态 | 技术专栏 | GIS书籍 | 资源下载 | 求职招聘 | 研究生考试 | GIS博客 | GIS空间站
欢迎光临GIS空间站!   网站地图
  专栏导航:| ArcGIS | MapInfo | TopMap | 地理信息 | 遥感 | GPS | 测绘 | WebGIS | LBS | 前沿 | 数据库 | 开发 | 行业应用
  推荐栏目:| AO开发 | 业界动态 | GIS资源 | 招聘信息 | 求职简历 | 共享软件 | 电子书籍 | 研究生考题 | 电子期刊 | GIS论文
您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> AO开发 >> 文章正文

利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用(二)

作者:3STECH    文章来源:中国3S网站(httpwww.863s.com)    点击数:    更新时间:2006-12-15
TopMap活动

下面的实现过程中提供了你成功完成方案所需所有代码。假设你对于开发环境已经有了一定的知识,所以下面没有逐步地详细介绍如何用Microsoft Visual Studio .NET开发应用。

(一) 加载ArcGIS控件

在你为应用程序编写代码之前,应该先将应用程序将用到的ArcGIS控件和其他ArcGIS Engine库引用装载到开发环境之中。

1.     启动Visual Studio .NET,并从新建项目对话框中创建一个新的Visual C# Windows应用程序”项目。

2.     将项目命名为“Controls”,并选择位置存取该项目。

3.     在“工具箱”的“Windows窗体”标签栏中单击右键,然后从上下文菜单中选择“添加/移除项(I)…”。

4.     在“自定义工具箱”中选择“.NET Framework组件”,并复选“AxMapControl”,“AxPageLayoutControl”,“AxTOCControl”和“AxToolbarControl”,单击确定按钮。这样所选择的控件将显示在工具箱Windows窗体标签栏中。

 

5.     单击项目菜单,并选择“添加引用(R)…”。

6.     添加引用对话框中,双击“ESRI.ArcGIS.Carto”,“ESRI.ArcGIS.Display”,“ESRI.ArcGIS.Geometry”,“ESRI.ArcGIS.System”,“ESRI.ArcGIS.SystemUI”,“ESRI.ArcGIS.Utility”。单击确定

注:对于ESRI .NET程序集,将通过具体实例来说明,并使用.NET框架提供的COM传送服务从你的C#项目中调用ESRI对象库中的实体对象。

(二) 在容器中嵌入ArcGIS控件

在你能够访问每个控件的事件、属性和方法之前,需要将控件嵌入到.NET容器中。一旦将控件嵌入窗体内,它们将图形化应用程序的用户界面。

1.       在设计模式下打开.NET窗体。

2.       双击工具箱Windows标签栏中的AxMapControl控件,将MapControl加入到窗体上。

3.       再将AxPageLayoutControlAxTOCControlAxToolbarControl如上添加到窗体中。

4.       重新调整窗体上各个控件的大小和位置,调整结果如下所示。

5.       在窗体上双击显示窗体代码窗口,在代码窗口的顶部增加“using”命令:

using System;

using System.Windows.Forms;

// ArcGIS Engine引用

using ESRI.ArcGIS.SystemUI;

using ESRI.ArcGIS.Carto;

using ESRI.ArcGIS.Display;

using ESRI.ArcGIS.Geometry;

using ESRI.ArcGIS.esriSystem;

using ESRI.ArcGIS.ToolbarControl;

using ESRI.ArcGIS.TOCControl;

注:需注意C#是区分大小写的。当你键入“ESRI.”时,智能敏感的自动完成功能将允许你通过按Tab键完成下一节。

(三) 加载Map文档到MapControlPageLayoutControl

单独的数据层或者使用ArcMapArcGIS桌面应用程序产生的图形文档,能够被加载到MapControlPageLayoutControl中。你可以加载样例图形文档,或者加载你自己的图形文档。后面你将增加一个浏览图形文档的对话框。

1.       选择Form_Load事件,并输入下列代码(如果你使用你自己的图形文档,要替换为正确的文件名):

        // 使用相对路径向PageLayoutControl加载一个图形文档

        string filename = @"..\..\..\..\..\..\..\..\Data\\ArcGIS_Engine_Developer_Guide\\gulf of st. lawrence.mxd";

        if ( axPageLayoutControl1.CheckMxFile(filename) )

        {

            axPageLayoutControl1.LoadMxFile(filename, "");

        }

2.       在设计模式显示窗体并从属性窗选择axPageLayoutControl1控件,显示axPageLayoutControl事件。在OnPageLayoutReplaced事件上双击向代码窗口添加该事件的处理函数。

3.     axPageLayoutControl1_OnPageLayoutReplaced事件中键入以下向MapControl加载样例图形文档的代码。当文档被装载入PageLayoutControlOnPageLayoutReplaced事件将会被触发。

        private void axPageLayoutControl1_OnPageLayoutReplaced(object sender, ESRI.ArcGIS.PageLayoutControl.IPageLayoutControlEvents_OnPageLayoutReplacedEvent e)

        {

            // 加载同样的文档到MapControl

            axMapControl1.LoadMxFile(axPageLayoutControl1.DocumentFilename, null, null);

            // 设置MapControl显示范围至数据的全局范围

            axMapControl1.Extent = axMapControl1.FullExtent;

}

文章录入:gissky    责任编辑:gissky  发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
■■相 关 图 书:
■■相 关 文 章:
  • ArcGIS Engine下实现地图输出

  • ArcGIS Engine开发-TOCControl中实现图层的拖放

  • 用GeoTools读取Shapefile的属性数据

  • ArcGIS Engine开发中可以利用到的资源

  • ArcGIS Engine标准培训教程

  • leihu:ArcGIS Engine开发感想

  • 基于.net平台和ArcGIS Engine9.0开发通用地理信息系统平台

  • 上一篇文章:

  • 下一篇文章:
  •  
    GIS博客精华
    热点文章
    热门资源
     
    关于我们 | 联系我们 | 广告服务 | 友情链接 | 申请链接 | 合作联盟 | 诚聘英才
      GIS空间站(GISSky.Net)版权所有 站长:兔八哥