当前位置:首页 > 天文地球
ArcObjects二次开发教程 ArcObkects advanced development guide eng
ArcObjects二次开发教程 ArcObkects advanced development guide eng

ArcObjects二次开发教程 ArcObkects advanced development guide engPDF电子书下载

天文地球

  • 电子书积分:15 积分如何计算积分?
  • 作 者:傅仲良主编;黄雁等编著
  • 出 版 社:北京:测绘出版社
  • 出版年份:2008
  • ISBN:9787503017841
  • 页数:481 页
图书介绍:随着GIS应用的深入,应用开发人员迫切需要一种GIS功能组件。为此各大GIS厂商纷纷推出了二次开发组件。ArcObjects作为ESRI公司ArcGIS家族中应用程序的开发平台,它是基于Microsoft Com技术所构建的一系列COM组件集,包含了超过1200个的对象。开发人员可在熟悉和喜欢的开发环境中利用ArcObjects开发GIS应用系统。本书首先介绍了组件式GIS的二次开发的概要、特点及其结构,然后简要介绍了ArcGIS系列产品的组成,再简要介绍了ArcObjects的功能、结构和特点以及用ArcObjects进行开发的方法,最后分别详细介绍了ArcObjects的各种对象以及如何实现地图显示及地理计算方法等。本书提供了大量的例子供读者参考。
《ArcObjects二次开发教程 ArcObkects advanced development guide eng》目录

第一章 ArcGIS体系结构 1

1.1概述 1

1.1.1ESRI公司产品发展史 2

1.1.2ESRIArcGIS 2

1.2ArcGIS桌面产品 3

1.2.1ArcMap 3

1.2.2ArcCatalog 4

1.2.3ArcToolbox 4

1.2.4ModelBuilder 4

1.2.5ArcGlobe 4

1.2.6ArcGIS桌面产品扩展模块 4

1.3服务端GIS 5

1.3.1ArcSDE 5

1.3.2ArcIMS 6

1.3.3ArcGISServer 6

1.4嵌入式GIS 7

1.4.1ArcObjects 7

1.4.2ArcGISEngine 7

1.5移动GIS 8

1.5.1ArcPad 8

1.5.2运行在TabletPC上的ArcGISDesktop和ArcGISEngine 8

第二章 ArcObjects介绍 9

2.1ArcObjects的概念 9

2.2ArcObjects的功能 9

2.3ArcObjects的特点 10

2.4ArcObjects的开发工具包 11

2.5ArpObjects的开发资源 11

2.6AO开发人员帮助系统 11

2.6.1AO起步(GettingStarted) 12

2.6.2对象模型总览(ObjectModelOverviews) 13

2.6.3对象模型图的阅读 13

2.6.4访问技术文档(TechnicalDocuments) 14

2.6.5浏览AO组件帮助系统 14

2.6.6开发示例的使用 15

2.6.7寻找按字母排列的对象 15

2.6.8使用关键字搜索 16

2.6.9保存书签 16

2.6.10ESRI对象浏览器 17

第三章 ArcObjects的体系结构 18

3.1ArcObjects的体系结构 18

3.1.1ArcObjects类库的功能划分 18

3.1.2ArcObjects主要控件 24

3.2理解AO的对象模型图 25

3.2.1对象模型图简介 25

3.2.2获取对象模型图 25

3.2.3理解对象模型图 25

3.3ArcObjects类库 27

3.3.1System类库 28

3.3.2SystemUI类库 28

3.3.3Geomet类库 29

3.3.4Display类库 29

3.3.5Server类库 29

3.3.6Output类库 29

3.3.7Geodatabase类库 29

3.3.8GISClient类库 29

3.3.9DataSourcesFile类库 30

3.3.10DataSourcesGDB类库 30

3.3.11DataSourcesOleDB类库 30

3.3.12DataSourcesRaster类库 30

3.3.13GeoDatabaseDistributed类库 30

3.3.14Carto类库 30

3.3.15Location类库 31

3.3.16NetworkAnalysis类库 31

3.3.17Controls类库 31

3.3.18GeoAnalyst类库 31

3.3.193DAnalyst类库 32

3.3.20GlobeCore类库 32

3.3.21SpatialAnalyst类库 32

3.3.22Framework类库 32

3.3.23GeodatabaseUI类库 33

3.3.24DisplayUI类库 33

3.3.25OutputUI类库 33

3.3.26Catalog类库 33

3.3.27CatalogUI类库 33

3.3.28CartoUI类库 33

3.3.29DataSourcesRasterUI类库 34

3.3.30ArcCatalogUI类库 34

3.3.31ArcCatalog类库 34

3.3.32ArcMapUI类库 34

3.3.33Editor类库 34

3.3.34LocationUI类库 35

3.3.35ArcMap类库 35

3.3.36EditorExt类库 35

3.3.37GeoDatabaseDistributedUI类库 35

3.3.38Geoprocessing类库 35

3.3.39GeoprocessingUI类库 35

3.3.40OutputExtensions类库 36

3.3.41OutputExtensionsUI类库 36

3.3.42SpatialAnalystUI类库 36

3.3.433DAnalstuI类库 37

3.3.44ArcScene类库 37

3.3.45G1obeCoreUI类库 37

3.3.46ArcGlobe类库 37

3.3.47ArcScan类库 37

3.3.48GeoStatisticalAnalyst类库 37

3.3.49GeoStatisticalAnalystUI类库 38

3.3.50ArcReaderControl类库 38

3.3.51Publisher类库 38

3.3.52PublisherUI类库 38

3.3.53Maplex类库 38

3.3.54DataSourcesSUMUUI类库 38

3.3.55TrackingAnalst类库 38

3.3.56TrackingAnalystUI类库 39

3.3.57SurveyExt类库 39

3.3.58SurveyPkgs类库 39

3.3.59SurveyDataEx类库 39

3.4AO常用控件介绍 39

3.4.1MapControl控件和PageLayoutControl控件 40

3.4.2GlobeControl控件和SceneControl控件 41

3.4.3ReaderControl控件和ArcReaderControl控件 41

3.4.4TOCControl控件和ToolbarControl控件 41

3.4.5其他控件 42

3.4.6控件的引用 42

3.5ArcObjects的扩展 42

第四章 MapControl控件 43

4.1概述 43

4.2MapControl控件的事件 43

4.2.1DragDrop事件 43

4.2.2DragOver事件 44

4.2.3GotFocus事件 44

4.2.4LostFocus事件 45

4.2.5OnAfterDraw事件 45

4.2.6OnAfterScreenDraw事件 45

4.2.7OnBeforeScreenDraw事件 46

4.2.8OnDoubleClick事件 46

4.2.9OnExtentUpdated事件 46

4.2.10OnFullExtentUpdated事件 47

4.2.11OnKeyDown事件 47

4.2.12OnKeyUp事件 47

4.2.13OnMapReplaced事件 47

4.2.14OnMouseDown事件 47

4.2.15OnMouseMove事件 48

4.2.16OnMouseUp事件 48

4.2.17OnOleDrop事件 48

4.2.180nSelectionChanged事件 49

4.2.19OnViewRefreshed事件 49

4.2.20Validate事件 49

4.3MapControl控件的属性 49

4.3.1ActiveView属性 49

4.3.2Appearance属性 50

4.3.3BackColor属性 50

4.3.4BorderStyle属性 50

4.3.5CausesValidation属性 50

4.3.6Container属性 50

4.3.7CurrentTool属性 50

4.3.8CustomProperty属性 51

4.3.9DataBindings属性 51

4.3.10DocumentFilename属性 51

4.3.11DocumentMap属性 51

4.3.12DragIcon属性 52

4.3.13DragMode属性 52

4.3.14Enabled属性 52

4.3.15Extent属性 53

4.3.16FullExtent属性 53

4.3.17Height属性 53

4.3.18HelpContextID属性 53

4.3.19hWnd属性 54

4.3.20Index属性 54

4.3.21KeyIntercept属性 54

4.3.22Layer属性 54

4.3.23LayerCount属性 55

4.3.24Map属性 55

4.3.25MapScale属性 55

4.3.26MapUnits属性 55

4.3.27MouseIcon属性 56

4.3.28MousePointer属性 56

4.3.29Name属性 56

4.3.30Object属性 56

4.3.31OleDropEnabled属性 57

4.3.32Parent属性 57

4.3.33ReferenceScale属性 57

4.3.34Rotation属性 57

4.3.35ShowMapTips属性 57

4.3.36ShowScrollbars属性 57

4.3.37SpatialReference属性 58

4.3.38TabIndex属性 58

4.3.39TabStop属性 58

4.3.40Tag属性 58

4.3.41TipDelay属性 59

4.3.42TipStyle属性 59

4.3.43ToolTipText属性 59

4.3.44TrackCancel属性 59

4.3.45Visible属性 59

4.3.46VisibleRegion属性 59

4.3.47WhatsThisHelpID属性 60

4.3.48Width属性 60

4.4MapControl控件的方法 60

4.4.1AboutBox方法 60

4.4.2AddLayer方法 60

4.4.3AddLayerFromFile方法 60

4.4.4AddShapeFile方法 61

4.4.5CenterAt方法 61

4.4.6CheckMxFile方法 61

4.4.7ClearLayers方法 62

4.4.8DeleteLayer方法 62

4.4.9Drag方法 62

4.4.10DrawShape方法 62

4.4.11DrawText方法 63

4.4.12FlashShape方法 63

4.4.13FromMapPoint方法 63

4.4.14LoadMxFile方法 63

4.4.15Move方法 64

4.4.16MoveLayerTo方法 64

4.4.17Pan方法 64

4.4.18ReadMxMaps方法 64

4.4.19Refresh方法 65

4.4.20SetFocus方法 66

4.4.21ShowWhatsThis方法 66

4.4.22SuppressResizeDrawing方法 66

4.4.23ToMapPoint方法 66

4.4.24TrackCircle方法 67

4.4.25TrackLine方法 67

4.4.26TrackPolygon方法 67

4.4.27TrackRectangle方法 67

4.4.28ZOrder方法 67

第五章 PageLayoutControI控件 68

5.1如何使用PageLayoutControl控件 69

5.2几个重要的类和接口 69

5.2.1PageLayout组件类 69

5.2.2MapSurround抽象类 70

5.2.3MapFrame组件类 70

5.2.4MapSurroundFrame组件类 71

5.2.5Element抽象类 71

5.2.6接口对象之间的关系 71

5.3PageLayoutControl事件 72

5.3.1OnAfterDraw事件 72

5.3.2OnAfterScreenDraw事件 72

5.3.3OnBeforeScreenDraw事件 73

5.3.4OnDoubleClick事件 73

5.3.5OnExtentUpdated事件 73

5.3.6OnFocusMapChanged事件 73

5.3.7OnFullExtentUpdated事件 74

5.3.8OnKeyDown事件 74

5.3.9OnKeyUp事件 74

5.3.10OnMouseDown事件 74

5.3.11OnMouseMove事件 74

5.3.12OnMouseUp事件 75

5.3.13OnOleDrop事件 75

5.3.14OnPageLayoutReplaced事件 76

5.3.15OnPageSizeChanged事件 76

5.3.16OnViewRefreshed事件 76

5.4PageLayoutControl属性 76

5.4.1ActiveView属性 76

5.4.2Appearance属性 77

5.4.3BackColor属性 77

5.4.4BorderStyle属性 77

5.4.5CurrentTool属性 77

5.4.6CustomProperty属性 78

5.4.7DocumentFileName属性 78

5.4.8Enabled属性 78

5.4.9Extent属性 78

5.4.10FullExtent属性 79

5.4.11GraphicsContainer属性 79

5.4.12hWnd属性 79

5.4.13KeyIntercept属性 79

5.4.14MouseIcon属性 79

5.4.15MousePointer属性 80

5.4.16Object属性 80

5.4.17OleDropEnabled属性 80

5.4.18Page属性 80

5.4.19PageLayout属性 80

5.4.20Printer属性 80

5.4.21PrinterPageCount属性 81

5.4.22TrackCancel属性 81

5.5PageLayoutControl方法 81

5.5.1AboutBox方法 81

5.5.2AddElement方法 81

5.5.3CenterAt方法 81

5.5.4CheckMxFile方法 82

5.5.5FindElementByName方法 82

5.5.6FromPagePoint方法 82

5.5.7LoadMxFile方法 82

5.5.8LocateFrontElement方法 82

5.5.9Pan方法 83

5.5.10PrintPageLayout方法 83

5.5.11Refresh方法 83

5.5.12SuppressResizeDrawing方法 83

5.5.13ToPagePoint方法 83

5.5.14TrackRectangle方法 84

5.5.15ZoomToWholePage方法 84

第六章 ArcObjects的开发方法和开发环境 85

6.1基于ArcObjects的开发方法 85

6.1.1开发模式分析 85

6.1.2程序设计过程 87

6.2VBA开发环境 91

6.2.1基于VBA的AO开发 91

6.2.2VBA工程管理的一些技巧 92

6.2.3使用GlobalApplication对象 94

6.3VisualBasic开发环境 94

6.3.1新建一个VB工程 94

6.3.2添加AO组件 94

6.3.3添加AO组件引用 95

6.3.4添加代码 96

6.3.5在VB环境下如何获得帮助 96

6.4一个在VC开发环境下的例子 96

6.4.1新建一个VC工程 96

6.4.2向工程添加AO组件引用 97

6.4.3添加AO组件并设置相关属性 97

6.4.4引用库文件 98

6.4.5相关变量和函数 99

6.5在NET开发环境下的例子 101

6.5.1VB.NET开发环境 102

6.5.2C#开发环境 104

第七章 ArcMap下用VBA进行开发 107

7.1应用框架对象 107

7.2通过文档和模板进行定制 108

7.3ArcGIS应用扩展 108

7.4框架对话框对象 109

7.4.1ProgressDialogFactory组件类和ProgressDialog类 109

7.4.2CoordinateDialog组件类 110

7.4.3GetStringDialog组件类 110

7.4.4GetUserAndPasswordDialog组件类 111

7.4.5ListDialog组件类 111

7.4.6MessageDialog组件类 112

7.4.7NumberDialog组件类 113

7.5ArcMap核心对象 113

7.6ArcMap页面对象 114

7.7ArcMap地图元素对象 115

7.8ArcMap数据窗口对象 116

7.9ArcMap图层对象 116

7.10ArcMap地图整饰对象 117

7.11ArcMap空间书签对象 119

7.12ArcMap风格库对象 120

7.13ArcMap地图格网对象 121

7.13.1MapGrid抽象类 121

7.13.2Graticule组件类 123

7.13.3IndexGrid组件类 123

7.13.4MeasuredGrid组件类 124

7.13.5MapGridBorder抽象类和Simple-MapGridBorder组件类 124

7.13.6CalibratedMapGridBorder组件类 125

7.13.7GridLabel抽象类 125

7.13.8DMSGridLabel组件类 126

7.13.9FormattedGridLabel组件类 127

7.13.10MixedFontGridLabel组件类 127

7.13.11IndexGridTabStyle抽象类 128

7.13.12MapGridFactory抽象类 129

7.13.13地图格网和数据结构 130

7.14ArcMap数字格式对象 130

7.14.1NumericFormat组件类 131

7.14.2AngleFormat组件类 131

7.14.3LatLonFormat组件类 131

7.14.4PercentageFormat组件类 131

7.14.5RateFormat和CurrencyFormat组件类 132

7.14.6ScientionicFormat组件类 133

7.14.7FractionFormat组件类 133

7.14.8CustomNumberFormat组件类 134

7.14.9NumberFormatDialog组件类 134

7.15ArcMap标签对象 135

7.15.1AnnotateLayerPropertiesCollection组件类 135

7.15.2LabelEngineLayerProperties组件类 136

7.15.3BasicOverposterLayerProperties组件类 137

7.15.4LineLabelPlacementPriorities和LineLabelPosition组件类 137

7.15.5PiontPlacementPriorities组件类 137

7.15.6AnnotationExpressionEngine组件类 138

7.15.7BarrierCollection组件类 138

7.16利用Automation定制ArcMap 139

第八章 ArcCatalog下用VBA进行开发 141

8.1ArcCatalog的体系结构 141

8.2GxApplication和相关的对象 142

8.2.1GxApplicatiop组件类 142

8.2.2GxSelection和GxObjectArray组件类 142

8.3GxView对象 142

8.3.1GxView抽象类 142

8.3.2GxContentsView和GxContentsViewColumn 143

8.3.3GxDocumentationView组件类 143

8.3.4GxGeographieView组件类 144

8.3.5GxTableView和GxTreeView组件类 145

8.3.6GxViewContainer抽象类 146

8.3.7GxPreview组件类 146

8.4GxObjects及其相关对象 146

8.4.1GxObject抽象类 146

8.4.2GxObjectsContainer抽象类 147

8.4.3GxDataset和GxDatabase组件类 147

8.4.4GxFolder和GxSpatialReferencesFolder组件类 148

8.4.5GxDiskConnection和GxRemoteData-baseFolder组件类 149

8.4.6GxFile组件类 149

8.4.7GxLayer组件类 150

8.4.8GxMap和GxPriFile组件类 151

8.4.9GxTextFile和GxMetadata组件类 152

8.4.10GxCatalog组件类 153

8.4.11GxFileFilter组件类 153

8.4.12GxObjectFactory抽象类 153

8.5FindDialog和与其相关的对象 154

8.5.1ProjectedCoordinateSystemDialog组件类 154

8.5.2GeographieCoordinateSytemDialog组件类 155

8.5.3SpatialReferenceDialog组件类 156

8.5.4TalbeDefinitionDialog组件类 157

8.5.5FindDialog组件类 158

8.6Metadata对象 159

8.6.1MetadataEditor抽象类 159

8.6.2MetadataImport抽象类 159

8.6.3MetadataExport抽象类 160

第九章 图层的基本操作 161

9.1概述 161

9.2常用接口介绍 161

9.2.1IActiveView接口 161

9.2.2ILayer接口 169

9.2.3IFeatureLayer接口 170

9.2.41GeoFeatureLayer接口 172

9.2.5IRasterLayer接口 173

9.3图层控制 175

9.3.1添加图层 175

9.3.2删除图层 178

9.3.3图层顺序调整 178

9.3.4图层显示控制 179

9.4地图浏览 179

9.4.1中心放大 179

9.4.2拉框放大 180

9.4.3中心缩小 181

9.4.4拉框缩小 182

9.4.5漫游 183

9.4.6全范围显示 183

9.4.7回退到前一视图 183

9.4.8书签 183

9.4.9鹰眼窗口 186

9.5地图文档 188

9.5.1几个与地图文档相关的接口介绍 188

9.5.2新建地图文档 193

9.5.3打开地图文档 193

第十章 空间分析 194

10.1概述 194

10.2空间查询 194

10.2.1简介 194

10.2.2实例分析 195

10.2.3具体实现 195

10.3叠置分析 202

10.3.1简介 202

10.3.2实例分析 203

10.3.3具体实现 204

10.4缓冲区分析 206

10.4.1简介 206

10.4.2缓冲区图层的建立 207

10.4.3缓冲区图层与目标图层的叠置分析 210

10.5网络分析 213

10.5.1简介 213

10.5.2建立几何网络 214

10.5.3进行网络分析 218

第十一章 地图符号化 227

11.1概述 227

11.2ArcObjects色彩的实现 228

11.2.1色彩模式概述 228

11.2.2ArcObjects常用色彩接口 229

11.3ArcObjects常用地图符号接口 232

11.3.1I5ymbol接口 232

11.3.2点状符号接口 235

11.3.3线状符号接口 241

11.3.4面状符号接口 248

11.3.5文本符号接口 256

11.4ArcObjects的地图符号化方法 261

11.4.1IFeatureRenderer接口 262

11.4.2简单渲染方法 264

11.4.3单值渲染方法 265

11.4.4分级渲染方法 270

11.4.5成比例符号渲染方法 273

11.4.6点值渲染方法 276

11.4.7统计图表渲染方法 278

11.4.8双值渲染方法 283

11.4.9多比例尺渲染方法 287

11.5地图符号库 290

11.5.1ArcGIS地图符号库概述 290

11.5.2ArcObjects常用符号库界面接口 291

11.5.3ArcObjects常用符号库接口 294

第十二章 地图注记 300

12.1地图注记概述 300

12.1.1地图注记的功能 300

12.1.2地图注记的分类 301

12.1.3地图注记的设计 301

12.2地图注记的配置 302

12.2.1影响地图注记配置的因素 302

12.2.2注记配置的基本原则 303

12.3ArcObjects常用地图注记接口 304

12.3.1IAnnotateLayerPropertiesCollection接口 304

12.3.2IAnnotateLayerPropertiesCollection2接口 305

12.3.3IAnnotateLayerProperties接口 305

12.3.4ILabelEngineLayerProperties接口 308

12.3.5ILabelEngineLayerProperties2接口 310

12.3.6IAnnotationExpressionEngine接口 310

12.3.7IAnnotationExpressionParser接口 311

12.3.8IBasicOverposterLayerProperties接口 311

12.3.9IBasicOverposterLayerProperties2接口 315

12.3.10IBasicOverposterLayerProperties3接口 315

12.3.11IBasicOverposterLayerProperties4接口 316

12.3.12IOverposterLayerProperties接口 316

12.3.13IPointPlacementPriorities接口 316

12.3.14ILineLabelPlacementPriorities接口 317

12.3.15ILineLabelPosition接口 317

第十三章 地图编辑 320

13.1ArcObjects常用地图编辑接口 320

13.1.1IWorkspaceEdit接口 320

13.1.2IFeatureClass接口 322

13.1.3IFeatureBuffer接口 330

13.1.4IFeatureCursor接口 331

13.1.5IFeature接口 332

13.1.6ITable接口 333

13.1.7IRowBuffer接口 335

13.1.8IRow接口 335

13.1.9IFields接口 336

13.1.10IField接口 337

13.1.11IGeometry接口 339

13.1.12IDisplsyFeedback接口 342

13.1.13IMoveGeometryFeedback接口 342

13.1.14INewMultiPointFeedback接口 342

13.1.15INewLineFeedback接口 343

13.1.16INewPolygonFeedback接口 343

13.1.17ILineMovePointFeedback接口 343

13.1.18IPolygonMovePointFeedback接口 344

13.1.19IHitTest接口 344

13.1.20ITransform2D接口 346

13.1.21ITopologicalOperator接口 347

13.1.22IProximity0perator接口 351

13.2地图编辑的实例 353

13.2.1功能概述 353

13.2.2具体实现 354

第十四章 空间数据管理 375

14.1空间数据库概述 375

14.1.1空间数据库的概念 375

14.1.2空间数据库的内容 375

14.1.3空间数据库的逻辑组织 376

14.1.4空间数据库管理系统 377

14.2ESRIGeodatabase 377

14.2.1Geodatabase 377

14.2.2ArcSDE 384

14.2.3Geodatabase和ArcSDE 387

14.3Geodatabase的访问 388

14.3.1Workspace和Name对象 389

14.3.2DataSet对象 393

14.3.3Table、ObjectClass和FeatureClass对象 397

14.3.4Row、Object和Feature对象 403

14.3.5Query、Cursor和Selection对象 405

14.3.6GeometricNetwork对象 411

14.3.7Versioning对象 416

14.3.8DataConverter对象 418

14.3.9Metadata对象 422

14.3.10On-the-flyTableJoin对象 429

第十五章 制图输出 436

15.1地图投影与坐标系统 437

15.1.1几个相关的类和接口 437

15.1.2地理坐标系与平面坐标系 446

15.1.3设置地图的坐标系统 448

15.2地图数据的基本操作 450

15.2.1加载地图数据 450

15.2.2旋转地图数据 451

15.2.3地图比例尺的设置 452

15.3地图版面的基本操作与设置 452

15.3.1页面基本操作 452

15.3.2图面大小和方向设置 454

15.3.3图廓、地图背景和框架阴影的设置 457

15.4辅助要素设置 462

15.4.1标尺的应用操作 462

15.4.2辅助线应用操作 463

15.4.3格网点应用操作 464

15.5整饰要素操作 464

15.5.1添加文本 464

15.5.2添加图例 466

15.5.3添加比例尺 472

15.5.4添加比例尺文本 475

15.5.5添加指北针 476

15.5.6地图要素排列 477

15.5.7删除整饰要素 478

15.6地图输出操作 478

15.6.1地图打印输出 478

15.6.2地图转换输出 479

参考文献 481

返回顶部