随笔分类 -  ArcEngine开发

摘要:在ArcEngine二次开发过程中,一个经常会被用到的功能就是根据图层名称获取对应图层,记录于此。 1 private ILayer GetLayerByName(string strLyrName) 2 { 3 ILayer pLayer = null; 4 bool bFindLayer = false; ; 5 for (int i = 0; i < pMapControl.Map.LayerCount; i++) 6 { 7 ... 阅读全文
posted @ 2011-12-15 15:32 百折不回 阅读(1850) 评论(0) 推荐(2) 编辑
摘要:首先说明一下所搭建的环境,信息比较多,文字难以描述,就直接上图咯。 操作系统信息: Visual Studio 2010信息: ArcGIS系列软件信息: 以上是我进行ArcGIS Engine 10.0开发的详细环境信息。下面描述使用ArcGIS Engine的MapControl Application模板时的问题。 1、启动VS2010,新建一个项目; 2、使用.NET Framework 3.5,依次展开Visual C#->ArcGIS->Extending ArcObjects,选择MapControl Application模板,命名该项目并指... 阅读全文
posted @ 2011-07-22 16:04 百折不回 阅读(5687) 评论(6) 推荐(3) 编辑
摘要:在ArcGIS 10系列中,安装好ArcGIS Desktop和ArcObject SDK,获取软件授权就可以进行ArcObject开发了。在这个新版本的开发中,许可方式发生了一定的变化,此文对此做个讲述。许可初始化 在ArcGIS 9.3中,对于所有单机应用程序(stand-alone applications),在运行ArcObjects组件之前,对其许可进行初始化是必须的。完成ArcGIS许可检查的APIs是在ESRI.ArcGIS.esriSystem.AoInitialize类中。传统的,许可检查可通过以下方法的一种来完成:直接式——编写AoInitialize代码,一般来说,可以. 阅读全文
posted @ 2011-07-05 00:12 百折不回 阅读(4664) 评论(2) 推荐(6) 编辑
摘要:ArcGIS中,每一个地理处理工具箱都是以一个托管程序集来表示的。这些托管程序集位于ArcGIS安装路径的\Dotnet\Toolboxes文件夹下。每一个工具箱程序集里都有很多的类,用不同的类来表示标准标准ArcGIS地理处理工具箱里对应的地理处理工具。在应用程序开发过程中,可以使用这些程序集中的类来建立并通过ArcEngine中的geoprocessor这个类来运行地理处理工具。 建立GP工具 建立一个地理处理类的实例,设定它的参数内容来指定该工具的输入项。必须保证所有被标记为规定参数的参数项都被正确的指定,除此之外,也可以指定被标记为可选参数的参数项。为了简化操作,每一个类都重载有一个. 阅读全文
posted @ 2011-05-06 22:40 百折不回 阅读(2505) 评论(0) 推荐(3) 编辑
摘要:MapDocument是一个很有用的组件类,可用于读取和修改地图文档(.mxds)。本文演示如何打开一个地图文档,并且利用一个循环来访问其所有的地图(maps)和图层(layers)。在该示例中,将这些对象的名称输出到控制台。示例代码using System;using System.Collections.Generic;using System.Text;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.esriSystem;class Program{ static void Main(string[] args) { Open... 阅读全文
posted @ 2011-04-27 12:41 百折不回 阅读(1934) 评论(2) 推荐(1) 编辑
摘要:ArcEngine开发——右键菜单的设计与实现利用ArcGIS Engine开发自定义GIS应用程序中,一般有两种方式来建立右键菜单。一是利用开发工具自带的右键菜单控件,如Visual Studio中的ContextMenuStrip控件;二是利用ArcGIS Engine封装好的IToolbarMenu接口。相比较而言,前者实现起来较简单,但后者使程序具有更好的面向对象性,也更利于扩展,在大型系统中,使用该方法是较好的选择。本文详细讲述如何利用IToolbarMenu接口实现右键菜单功能。设计程序主界面如下图所示。基本浏览功能以及获取TocControl控件中的图层信息详见ArcEngine 阅读全文
posted @ 2011-04-21 11:40 百折不回 阅读(3980) 评论(1) 推荐(1) 编辑
摘要:承接前一内容(ArcEngine开发——地图浏览)稍作界面调整,添加TOCControl、TextBox和两个Button控件,调整后如下: 为了使TOCControl具有更多的功能,必须编写自己的代码。一个首当其冲的问题就是获取鼠标在TOCControl上点击的位置上所对应的信息,包括地图、图层或者图层符号等。实现这个功能,ArcEngine中提供了两个方法。其一是TOCControl封装的HitTest()方法,其二是GetSelectedItem()方法。 先定义以下变量:代码 使用HitTest()方法:代码 GetSelectedItem()方法相比HitTest()方法少了鼠标点 阅读全文
posted @ 2010-12-05 16:31 百折不回 阅读(2930) 评论(3) 推荐(2) 编辑
摘要:对于GIS来说,地图的浏览功能(包括大小缩放、漫游、历史视图控制等)是一项最基础的功能,在所有的GIS系统中都要求实现。利用ArcEngine开发的GIS中实现这些功能不止一种方法。当然最简单的方法是利用ArcEngine的内置Command控件来与地图显示控件进行交互,另外也可以通过ArcEngine类库的相应接口和方法来实现。本文结合一个入门级实例讲述不同方法来实现地图浏览功能。先上效果图,如下:用ArcEngine内置的Command控件来实现上图所示功能简直易如反掌,实例化对应的Command对象并显式的运行它,即可。比如中心放大和前一视图功能的实现代码如下: //中... 阅读全文
posted @ 2010-11-28 15:21 百折不回 阅读(3440) 评论(8) 推荐(5) 编辑
摘要:动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL不是可执行文件,DLL 是一个包含可由多个程序同时使用的代码和数据的库。 通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。... 阅读全文
posted @ 2010-11-25 15:13 百折不回 阅读(1346) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示