ArcGIS Engine二次开发入门2
ArcGIS二次开发
第一章z开发基础1.1组件对象模型在明确讨论COM之前,有必要先一般性地思考一下软件组件使用的广泛性。
在软件组件背后有许多的驱使因素,但最基本的就是软件开发是个昂贵和耗时的风险行为。
在理想的世界里,假如曾经写了一段代码,然后通过不同的开发工具一次一次的反复使用它,这种情况是可能的,即便是在最初的开发者不能预见的环境下也能使用。
理想情况下,对最初开发者生成的函数功能的改变能在不需要目前用户改变和重编译他们的代码情况下实现。
早期重用代码块的尝试就是创建类库的进展,这些类库通常用C++开发。
早期的尝试有很多的限制,较为明显的是:共享系统组件的困难(共享二进制C++组件是非常困难的——大部分的尝试是共享源代码);不重新编译就很难保存和更新C++组件的问题;缺乏好的建模语言和工具以及属性接口和定制工具。
为了解决这样那样的一些问题,许多软件工程师开始采用基于组件的方法进行系统开发。
一个软件组件就是一个可重用代码的二进制单元。
已经出现了几个不同但相互重叠的开发和共享组件标准。
微软的COM已成为建立交互式桌面应用程序事实上的标准。
在互联网上,JavaBean是可行的技术。
对象管理组(OMG)制定了粗粒度层次上适用于应用程序互操作的公用对象请求代理架构(CORBA)。
为了理解COM(以及所有基于COM的技术),认识到其不是一种面向对象语言而是一个协议或标准是非常重要的。
COM不仅仅是一种技术,还是软件开发的一种方法论。
COM定义了一种连接软件组件或模型的协议。
通过使用这种协议,可以建立能在分布式系统中动态交互的可重用软件组件。
COM还定义了一种称作基于接口的编程模式。
对象封装了能体现定义良好的接口后每个实例化对象特征的操作方法和数据。
这增强了系统开发的结构化和安全性,因为一个对象的客户并不知道某个特定方法如何实现的任何细节。
COM不规定应如何构建一个应用程序。
语言、结构和实现细节都由使用COM的应用程序开发人员决定。
GIS二次开发第二章AO基本理论
属性页
事件
“伙伴”控件
GIS二次开发
2.4 Arcobjects的常用控件
2.4.2 主要控件简要
在ArcGIS 中,Arcobjects包含的控件最多、最全。
主要包括:
地图控件(MapControl) 布局控件(PagelayoutControl) 工具条控件(ToolbarControl) 图层控件 (TOCControl) 三维显示控件(SceneControl) 全球显示控件(GlobeControl) 地图浏览控件(ReaderControl)
表示符号:
实例化(Instantiation)指定一个类的对象具有
能够创建另外一个类对象的方法。
GIS二次开发
2.3 使用对象模型图(OMD)
2.3.3 类与类之间的关系
聚合关系
表示符号: 聚合(Aggregation)是一种不对称的关联方式, 在这种方式下一个类的对象被认为是一个“整 体”,而另一个类的对象被认为是“部件”。
GIS二次开发
2.1 COM基础
2.1.2 什么是COM
COM(Component Object Modal的简写),即组 件对象模型,是组件类、组件接口和组件间相互说明的 集合。
COM不是一种面向对象的编程语言,而是微软公司推 出一种协议或者标准。 COM不仅仅是一种技术,更是一种软件开发的方法 (论)。
GIS二次开发
第2章 Arcobjects的基本知识
图2-1 控件、组建库、类和接口之间的关系
GIS二次开发
第2章 Arcobjects的基本知识
2.3 使用对象模型图(OMD)
ArcEngine二次开发入门介绍
ArcObjects OMD图表上的虫洞
概念上,这是一个对象模型 事实上, 被分别在几张图表里存放
虫洞表现了图表与图表间的连接关系
虫洞
Element on ArcMap OMD
FeatureLayer on Map Layer OMD
例子: MxDocument > Map > layer
或者通过另一个类的实例化来创建对象。
在OMD中的关系类型主要有: 类型继承(AT和yBpe为in普h通eri类ta对nc象e),C为组件类对象,D为一普通类, 创建(Inst如an下tia面tio代n码): 组成(ComAp=osBit.iwornit)eA:()对象间的主次关系
) 关联(AssAoc=iaCtio.wnrsiteA()
*
Layer
ILayer pLayer = pMap. get_Layer(1);
// Is( pLayer is IFeatureLayer ) {
FeatureLayer
MessageBox.Show( "Yes!, it’s a feature layer" ); }
从当前的文档中取得聚焦的Map (active data frame)
MxDocument 可以包含一些 Maps ( * )
从一个 Map中取得图层对象
MxDocument
图层对象有多种的类型 ( )
*
Map
IMxDocument pMxDoc = LoadMxdDoc (@"c:\Temp\test.mxd"); IMap pMap = pMxDoc.FocusMap;
������ GeoTransformations(地理变换)对象等。
第5章_ArcGIS Engine二次开发(基本功能)
图32 初次运行结果
3.1.4 添加基本的代码
➢ 我们没有书写任何代码,就得到了一个最简单的地图显示程序。但这 个程序还不能与用户交互,下一步我们需要添加一些代码,让程序能 响应用户的鼠标,完成放大和全图显示的功能。
图33 MapControl控件支持的所有方法
➢ 双击MapControl控件,可以进入代码编辑界面。从窗口上方的下拉 列表框中,我们能够看到MapControl能够响应的所有事件(关于每 个事件的详细使用方法等请参见帮助系统,第六章对帮助系统有更加 详细的介绍)。双击MapControl进入代码编辑界面的时候,默认的 是“OnMouseDown”事件,下一步就需要在这个事件中添加响应鼠 标的相关代码。
If pFeature Is Nothing Then Me.AxMapControl1.Refresh() MessageBox.Show("没有找到名为" & TextBox1.Text & "的州",
"Infomation", MessageBoxButtons.OK) Exit Sub
Else Me.AxMapControl1.Map.SelectFeature(pFeatureLayer, pFeature) Me.AxMapControl1.Extent = pFeature.Shape.Envelope
End If End If
➢ 运行程序,分别向编辑框中输入“Texas”和“RS”,键入回车,如 下图所示:
图39 Texas州查询结果
图40 RS查询结果
3.2.3 代码解释
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then 上述代码是一个判断语句,即当用户输入回车的时候,开始进行查询。
ArcEngine二次开发入门
pRender.FieldCount = 1; pRender.set_Field(0, field); pRender.DefaultSymbol = symd as ISymbol; eDefaultSymbol = true;
for (int i = 0; i < values.Length; i++) { ISimpleFillSymbol symx = new SimpleFillSymbolClass(); symx.Style = esriSimpleFillStyle.esriSFSSolid; symx.Outline.Width = 0.4; symx.Color = colors[i]; pRender.AddValue(values[i], field, symx as ISymbol); pRender.set_Label(values[i], values[i]);
}
地图缩放的控制
修改m_mapControl.Extent可达到缩放效果。 缩放到任意范围:构建一个Envelope 缩放到图层:ILayer. AreaOfInterest 缩放到某地物:IGeometry.Envelope 缩放到选择集:合并选择集中所有 Geometry的Envelope
SimpleLineSymbol
public ISimpleLineSymbol CreateSimpleLineSymbol(IRgbColor rgbColor, double inWidth, esriSimpleLineStyle inStyle) { if(rgbColor == null) { return null; } ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbolClass(); simpleLineSymbol.Style = inStyle; simpleLineSymbol.Color = rgbColor; simpleLineSymbol.Width = inWidth; } return simpleLineSymbol;
ArcGISEngine开发2
ArcGIS 控件介绍
ArcGIS的控件是高度集成化的,首先能够让开发者构建 和扩展ArcGIS的功能,其次能够提供图形用户界面 (GUI)。
ArcGIS的控件被称为Active X控件,.NET控件。 MapControl ——类似于“数据”。 PageLayoutControl ToolbarControl TOCControl(Tablet of Contents Control) SceneControl GlobleControl ReaderControl
(3)窗体上添加控件,编写代码
打开.NET窗体,双击“工具箱”中“ESRI”标签栏中的 AxMapControl控件,将MapControl加入到窗体上,再将 AxToolbarBox也添加到窗体上。
在窗体上双击显示窗体代码窗口,加载图层到MapControl 中,在Form_Load事件中添加地图文档加载代码:
ArcObjects简介
ArcObjects是ArcGIS Desktop的开发平台。 ArcGIS Desktop是一系列GIS软件系统:ArcInfo,
ArcEditor和ArcView。这些系统服务于GIS。
ArcGIS Desktop系统包含一系列的应用,如ArcCatalog、 ArcMap、ArcToolBox和ArcScene,并能够集成大量不 同的扩展产品。如,ArcGIS Spatial Analyst(空间分析 模块),ArcGIS Geostatistical Analyst(地理统计分 析模块), ArcGIS 3D Analyst(三维分析模块)等。
工具栏控件(ToolbarControl)
ToolbarControl需要与一个“伙伴控件”一起工作。 “伙伴控件”可以是一个 MapControl,PageLayoutControl,SceneControl或者是 GlobeControl。
ArcGIS_Engine二次开发讲义
ArcGIS Engine二次开发实习初级讲义目录1 ArcGIS、ArcObjects和ArcGIS Engine简介.................................................................... - 3 -1.1 ArcGIS简介 ................................................................................................................ - 3 -1.2 ArcObjects简介 .......................................................................................................... - 4 -1.3 ArcGIS Engine简介.................................................................................................... - 5 -2 ArcGIS控件介绍.................................................................................................................... - 7 -2.1 ArcGIS控件简介 ........................................................................................................ - 7 -2.2重要控件简介............................................................................................................... - 9 -3 ArcGIS Engine二次开发入门 ............................................................................................ - 16 -3.1 ArcGIS Engine开发起步——第一个简单的地图显示程序 .................................. - 16 -3.2 属性查询.................................................................................................................... - 23 -3.3 空间查询.................................................................................................................... - 27 -3.4 BaseCommand开发实例 .......................................................................................... - 36 -3.5 BaseTool开发实例.................................................................................................... - 38 -3.6通过代码添加图层..................................................................................................... - 42 -3.7基于比例尺显示地图................................................................................................. - 44 -3.8 构建一个简单的GIS应用........................................................................................ - 46 -4.问题解决方法及帮助文档的使用........................................................................................ - 58 -4.1使用ArcObjects开发帮助系统............................................................................... - 58 -4.2阅读对象模型图(Object Model Diagram)......................................................... - 62 -1 ArcGIS、ArcObjects和ArcGIS Engine简介1.1 ArcGIS简介ArcGIS提供了一个可伸缩的框架,可以为独立用户或者多用户,既可以在桌面端也可以在服务器端提供GIS。
最新ArcGISEngine开发2
IMapControl2定义控制控件外观界面的各种属性和方法。 如Appearance、BorderStyle 和BackColor。它定义的 主要方法有TrackLine、 TrackPolygon、 TrackRectangle和TrackCircle。
一个简单的应用程序 (1)创建一个新的工程 (2)添加控件及引用 (3)窗体上添加控件,编写代码(地图) (4)设置ToolbarControl 与MapControl控件关联 (5)运行程序
(1)创建一个新的工程 启动Visual ,从“新建项目”对话框中创建一
个新的Visual C#“Windows应用程序”项目,并设置项目 名称为“Sample”,选择位置保存该项目。
GlobeControl通过对象接口来操作IGlobe视图,用户可 以通过IGlobeViewer对象来操作ArcGlobe应用程序。
框架控件介绍
图层树控件(TOCControl) TOCControl用来管理图层的可见性和标签的编辑。
TOCControl需要一个“伙伴控件”一起工作, “伙伴控 件”可以是一个MapControl、 PageLayoutControl、 ReaderControl、SceneControl或者是GlobeControl。 “伙伴控件”能够在设计的时候通过ToolbarControl的 属性页设置。或者在程序运行中通过SetBuddyControl 方法来设置。 “伙伴控件”都实现了ITOCBuddy接口。 TOCControl 利用“伙伴控件”来显示交互性的树结构目录,包括“伙 伴控件”的地图、图层、符号等内容。
基于ArcGISEngine地理信息系统的二次开发
基于ArcGISEngine地理信息系统的二次开发基于ArcGISEngine地理信息系统的二次开发地理信息系统(Geographical Information System, GIS)是一种用于收集、存储、处理、分析和展示地理空间数据的计算机系统。
随着地理信息技术的不断进步,ArcGISEngine作为GIS领域开发的重要工具之一,为开发人员提供了丰富的功能和强大的开发平台,使得二次开发成为可能。
ArcGISEngine是Esri公司推出的一套开发工具包,基于ArcGIS核心技术,能够在各种WINDOWS平台上实现高性能、高度灵活的GIS应用程序开发。
它提供的API包括ArcObjects、ArcSDE、ArcGIS Server等,开发人员可以利用这些工具开发各种地理空间应用程序,满足用户的需求。
在进行二次开发时,首先需要理解ArcGISEngine的基本概念和核心功能。
ArcGISEngine使用一种被称为“地理数据对象”的结构组织和管理各种地理数据。
开发人员可以利用ArcObjects这一API来完成对地理数据对象的插入、查询、更新和删除等操作。
此外,ArcGISEngine还提供了丰富的符号化功能,使得地理数据可以以各种形式进行可视化展示。
在二次开发过程中,需要根据具体的需求对ArcGISEngine进行定制和扩展。
开发人员可以利用ArcObjects提供的面向对象的编程接口进行开发,根据需求自定义各种功能和工具。
例如,可以通过ArcObjects扩展空间分析功能,实现区域查询、缓冲区分析、路径分析等高级功能。
此外,还可以利用ArcGISEngine提供的控件库来开发用户友好的GIS应用界面,实现数据管理、地图显示、图层控制等交互操作。
ArcGISEngine还支持与其他系统和第三方数据源的集成,提供了与数据库、Web服务、传感器等系统的连接和交互接口。
例如,可以通过ArcObjects与数据库系统进行数据交互,从而实现地理数据的导入、导出、更新等操作。
ArcGISEngine二次开发:从入门到精通
ArcGISEngine⼆次开发:从⼊门到精通ArcGIS Engine是ArcGIS的⼀套软件开发引擎,可以让程序员创建⾃定义的GIS桌⾯程序。
它是ESRI在ArcGIS9版本才开始推出的新产品,它是⼀套完备的嵌⼊式GIS 组件库和⼯具库,使⽤ArcGIS Engine开发的GIS应⽤程序可以脱离ArcGIS Desktop⽽运⾏。
>>ArcGIS Engine与国⼟资源:ESRI在线⽀持:最好的帮助⽂档其实是arcobject sdk帮助⽂档和samples.....但是,有⼀本参考书还是必要的。
本书共16章。
第⼀部分为基础篇:第1~9章,主要是控件。
第⼆部分为应⽤提⾼篇:空间分析。
第10章。
第三部分:第11~12章,实例应⽤。
第四部分为空间数据库的操作。
第1章开发基础ArcGIS的类库总体可以分为界⾯控件类和操作组件类。
控件和组件是不⼀样的,控件是有界⾯的,组件是没有界⾯的。
所以它们的引⽤⽅式是不⼀样的。
需要注意它们的区别。
具体可以看:OM组件System类库:System类库是Engine中最底层的类库。
SystemUI类库:主要定义了ArcGIS系统中所使⽤的⽤户界⾯组件类型。
Geometry类库:包含了核⼼⼏何对象,如点、线、多边形及其⼏何类型和定义。
Display类库:包含了⽀持向输出装置绘制符号体系的组件。
Server类库:包含了⽤于获取到ArcGIS Server的连接的对象。
Output类库:包含了⽣成输出所必须的对象,通常是从地图或页⾯布局输出到打印机、绘图仪,或导出到⽂件中。
Geodatabase类库:Geodatabase类库:包含了所有与数据访问相关的定义的类型,为地理数据提供了编程API,是建⽴在标准⼯业关系型和对象关系数据库技术之上的地理数据库。
GISClient类库:DataSourcesFile类库:DataSourcesGDB类库:DataSourcesOleDB类库:DataSourcesRaster类库:GeoDatabaseDistributed类库:Carto类库:Carto类库:该类库⽀持地图的创建和显⽰,PageLayout 对象是地图及其底图元素的容器。
ArcEngine二次开发入门介绍
❖
Display类库:Display类库包含用于显示GIS数据的对象。它包括
Display对象、Color对象、ColorRamp对象、DisplayFeedback对象、
RubberBand对象、Tracker对象、Symbol对象。
2021/8/14
31
❖
Output类库: Output类库包含了AO中的所有输出对象:打印输出对象
AO的少部分功能。
❖
❖
ArcEngine具有简洁、灵活、易用、可移植性强等的特点ine 扩展模块
Geodatabase Update
❖ Spatial
❖ 3D With Global Visualization
❖
Engine开发包包括了高级的Engine扩展模块
❖
不能创建或实例化
抽象类永远不能有实例
❖
为子类定义了泛化(general)
子类集成了抽象类的接口
❖
抽象类的OMD 符号: 2维阴影矩形
2021/8/14
15
组件类 (CoClass)
❖
可以创建:使用 New关键字
IMap pMap = new MapClass()
实例化: 从其它对象获得
IMap pMap = pMxDocument.FocusMap()
虫洞
2021/8/14
Element on
ArcMap OMD
FeatureLayer on
Map Layer OMD
21
例子: MxDocument > Map > layer
❖
从当前的文档中取得聚焦的Map (active data frame)
ArcGIS Engine二次开发入门(课堂PPT)
.
72
.
73
如上图所示,对象模型图展示了每个对象内的各类之间的接口,继承、派生关系,属性及方法之 间的联系等,是对整个对象最完整的定义。对象模型图可视化的表达了ArcObjects的继承关系, 因而您能识别关键对象,查看哪些对象之间具有联系(如对象的创建关系),理解接口继承和派 生类型的定义,并且找出实现了一个类所实现的全部接口。参考对象模型图与参看帮助系统中具 体的接口所获得的信息是一致的,只不过查看具体的接口信息将更方便获得具体的使用方法,属 性设置方法等,而参看对象模型图是从全局来把握整个对象,更容易找出各接口之间的联系和调 用方式等。 对象模型图的放置路径为“X:\Program Files\ArcGIS\DeveloperKit\Diagrams”(X代表ArcGIS 安装所在的盘符)。 对象模型图的书写类似于UML图,对象模型图中也对其基本规则也有所解释,因而UML的具体语 法规则、定义等这里不再赘述,如果需要更加详细的信息,您可以参考UML方面的相关书籍,或 者参考《Exploring ArcObjects》中的相关章节。
.
3
5.6 BaseTool开发实例
.
4
.
gis二次开发2
2.3.2 安装 ESRIMapObjects
STEP:在光盘中有 三个文件;依次运 行 •Mo23Eval_Only.ex e:安装MO •Mo23Samples.exe :安装例子 •Mo23Data.exe:安 装例子所需要数据
安装完成后,可从“开始”->“程序” ->“ESRI” 找到 MapObjects 2.3程序组
*.tif
*.sun *.gis *.rls *.bil *.bip
*.tfw
*.snw *.gsw *.rlw *.blw *.bpw
BSQ
Band sequential
*.bsq
*.bqw
2.2.6 数据表
•在基于MapObjects编写的应用程序中,通过ODBC( 开放数据库连接)驱动程序,可以访问外部的数据表, 它们可以是种格式的,比如:Access, SQL Server, Oracle 等
2.3.2 安装 Microsoft Visual Basic 6.0 中文版
STEP 1:运行VB 安装光盘上的的 Setup.exe 程序 ,按提示进行安 装。(安装过程 中需要系列号的 地方可输入任意 数字例如:1111111111直到“ 下一步”按钮变 成可用状态)
•STEP 2: 安 装完成后,在 光盘目录VB6SP6B中找到 SetupSP6.exe ,将VB6 升级 到最新版本。 SP6 是微软公 司对其产品 VB6 的第6次 更新,修正了 以前的一些问 题
2.4.1认识VB 6的集成开发环境
VB 集 成 开 发 环 境
VB6中常用的控件库
2.4.2 在VB 6 中加载 MapObjects控件
STEP1: 启动 Visual Basic 6 ,在 开始出现的向导 中选择新建工程( 标准 EXE) . 确定 STEP2: 在工 具栏上点右键 (工 具栏位于VB窗口 的左边),在出现的 右键菜单中点击 ”部件”命令.
优-ArcEngine基础开发教程C#二次开发ArcGis
优-ArcEngine基础开发教程C#二次开发ArcGisArcGIS Engine基础开发教程(1)——创建第一个ArcGIS Engine 桌面应用程序1创建第一个ArcGIS Engine桌面应用程序ArcGIS Engine9.3提供了丰富的GIS组件方便用户快速的定制开发一个GIS应用程序,无需写代码即可实现GIS 数据加载,地图操作等功能甚至可以实现高级编辑以及空间分析功能。
接下来使用ArcGIS Engine9.3提供了MapControl Application模块来创建第一个ArcGIS Engine桌面应用程序,并为桌面应用应用程序提供编辑功能。
1.1目标1.创建第一个ArcGIS Engine桌面应用程序2.为应用程序添加编辑功能。
1.2准备工作1 .IDE:Visual Studio 2005/2008 2. ArcGIS Engine Developer kit 9.3 3. 制作ArcGIS实验数据地图文档MXD 1.3设计流程图1.4制作地图文档在ArcMap中加载数据后,点击保存生成一个*.mxd地图文档,如图1所示:1.5创建第一个ArcGIS Engine桌面应用程序在Visual Studio2008中新创建项à选择àArcGISàEngineàMapControl Application,点击确定,如图2所示:可以看到在Visual Studio中看到在新创建的项目中自动加载了ToolBarControl、T ocControl、LicenseControl、MapControl四个ArcGIS Engine控件以及一个.NET ToolStripMenuItem菜单控件,如图3所示:1.6加载MXD地图文档数据单击F5键运行程序,然后单击打开MXD地图文档按钮打开MXD 地图文档,如图4所示:可以看到应用程序把MXD地图文档加载到MapControl地图上,可以使用ToolbarControl提供的常用GIS 功能如:放大,缩小,信息查询等功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.8 构建一个简单的GIS应用
5.9 问题解决方法及帮助文档的使用
3ห้องสมุดไป่ตู้
5.6 BaseTool开发实例
11
12
5.7通过代码添加图层
14
5.8 构建一个简单的GIS应用
22
58
59
60
61
74
End, Thanks!
Wuhan University School of Remote Sensing and Information Engineering
GIS工程设计开发综合实习
——基于C#.NET和AO/AE的GIS设计与开发
张文、黄长青 武汉大学遥感信息工程学院
Wuhan University School of Remote Sensing and Information Engineering
72
73
如上图所示,对象模型图展示了每个对象内的各类之间的接口,继承、派生关系,属性及方法之 间的联系等,是对整个对象最完整的定义。对象模型图可视化的表达了ArcObjects的继承关系, 因而您能识别关键对象,查看哪些对象之间具有联系(如对象的创建关系),理解接口继承和派 生类型的定义,并且找出实现了一个类所实现的全部接口。参考对象模型图与参看帮助系统中具 体的接口所获得的信息是一致的,只不过查看具体的接口信息将更方便获得具体的使用方法,属 性设置方法等,而参看对象模型图是从全局来把握整个对象,更容易找出各接口之间的联系和调 用方式等。 对象模型图的放置路径为“X:\Program Files\ArcGIS\DeveloperKit\Diagrams”(X代表ArcGIS 安装所在的盘符)。 对象模型图的书写类似于UML图,对象模型图中也对其基本规则也有所解释,因而UML的具体语 法规则、定义等这里不再赘述,如果需要更加详细的信息,您可以参考UML方面的相关书籍,或 者参考《Exploring ArcObjects》中的相关章节。
70
71
回到IFeatureClass的帮助,在“Members”之后是“Inherited Interfaces”和 “Classes that implement IFeatureClass”,分别标明了IFeatureClass接口是从 何继承而来以及实现了IFeatureClass接口的类,根据COM的标准,您可以 通过COM原理中的QueryInterface,从IFeatureClass接口查询得到实现了该 接口的其他接口。
“Members”指的是接口下的成员,这包括属性、方法等。这里我们不能一一给您列举出来,而是挑选一 个作为例子讲解。 例如我们看到“Search”成员,这是一个方法,通过对“Search”的描述,我们可以得到,“Search”方 法将“返回一个object cursor,其中包含经过特定的查询条件得到的要素对象”。通过这个描述,我们可 以大概得出,通过“Search”方法,我们可以从一个要素集中按照一定的查询条件得到一些特定的要素,供 后续使用。为了获得更加详细的描述,我们点击
Part 5:
ArcGIS Engine二次开发入门
2
ArcGIS Engine二次开发入门 5.1 ArcGIS Engine简介 5.2 ArcGIS Engine开发起步
5.3 属性查询
5.4 空间查询 5.5 BaseCommand开发实例 5.6 BaseTool开发实例 5.7 通过代码添加图层
后面的“See Also”代表了与此相关的一些接口,“Example”(如果有的话) 就是具体的示例代码,通过这些示例,相信您能更快的熟悉接口的使用。
请您参照帮助系统,熟悉IMapControl2,IActiveView,IFeatureLayer, IFeatureClass,ISpatialFilter,IFeatureCursor,IFeature,IGeometry等接口, 以及这些接口中的属性、方法等涉及到的其他接口。熟悉和掌握这些常用 接口的使用,对您熟悉ArcObjects与迅速掌握ArcObjects的开发是极有帮助 的。
62
63
5.9 问题解决方法及GIS 帮助文档的使用
64
65
66
67
68
69
IFeatureClass Interface 这表明IFeatureClass接口是包含在ESRI.ArcGIS.Geodatabase这个类库中,在编程的时候,如果想使用 IFeatureClass接口,则需要首先添加“ESRI.ArcGIS.Geodatabase”的引用,也就是加上“Imports ESRI.ArcGIS.Geodatabase”之类的引用。这样,当您需要使用别的接口时,首先就需要查询帮助,并将 您需要的引用添加到程序中,这也是我们之前编写程序需要添加一些不同引用的原因。 标题下面的第一行是“Provides access to members that control the behavior and properties of a feature class.”,这表明,IFeatureClass接口提供了访问控制要素类行为和属性成员的的方法。类似这样 的话能够让您迅速明白某个接口的作用。 “Product Availability”指的是产品的使用范围,这里从紧接这的介绍可以清晰地看到,在ArcGIS Engine,ArcGIS Desktop和ArcGIS Server中都可以使用。 “When To Use”指的是使用这个接口的场合,也可以算接口的综述。从紧跟着的介绍性文字可以得出, “IFeatureClass接口是获得和设置要素类属性的主要接口。例如,使用IFeatureClass接口能够得到要素集 的类型,获得满足某种查询条件的要素数量,或者是在要素集中创建一个新的要素。IFeatureClass接口从 IObjectClass接口继承而来。”