《ArcGIS Engine不错开发与工程应用》以ESRI ArcGIS Engine 10.4、Visual C#.NET 2015为基本开发环境,重点阐述了地理信息二次开发的基本原理、方法和工程应用技巧。《ArcGIS Engine不错开发与工程应用》主要内容包括AE应用开发基础、AE二次开发的基本概念与核心对象、地图可视化表达、空间查询、GP处理与调用、插件框架开发、数字地形分析、北斗/GPS实时定位导航指挥系统等。在介绍方法和原理的同时,《ArcGIS Engine不错开发与工程应用》配有大量具有工程价值的应用案例,并给出实现思路和代码解析,供读者对照练习。
前言
章 ArcGIS Engine开发基础 1
1.1 ArcGIS Engine概览 1
1.1.1 ArcObjects与ArcGIS Engine 1
1.1.2 ArcGIS Engine的组成 2
1.2 面向对象的程序设计思想 3
1.2.1 封装 4
1.2.2 继承 5
1.2.3 多态 5
1.3 ArcGIS Engine与组件对象模型 7
1.3.1 组件对象模型 7
1.3.2 COM Interop 7
1.3.3 AE内存释放 10
1.3.4 ArcGIS Engine组件库 15
1.4 ArcGIS Engine控件的使用 17
1.4.1 控件功能介绍 17
1.4.2 个AE程序 20
第2章 地图、图层与布局 25
2.1 地图 25
2.1.1 地图文档:MapDocument对象 25
2.1.2 地图:Map对象 30
2.2 图层 37
2.2.1 ILayer接口 37
2.2.2 要素图层 38
2.2.3 代码分析:LayerHelper类 42
2.2.4 要素类 49
2.3 布局 53
第3章 几何对象与空间参考 60
3.1 几何对象 60
3.1.1 IGometry接口 60
3.1.2 Point和MultiPoint 61
3.1.3 Polyline和Polygon 62
3.2 空间参考 64
3.2.1 大地水准面 64
3.2.2 地球椭球体 65
3.2.3 大地基准面 65
3.2.4 地理坐标系 66
3.2.5 投影坐标系 67
3.2.6 代码分析:CGCS2000国家大地坐标系及其高斯投影坐标系的创建 68
3.3 地理实体 76
3.3.1 地理要素 76
3.3.2 代码分析:等高线数据转换与渲染 77
3.3.3 图形元素 88
3.3.4 代码分析:绘制防空识别区 89
第4章 地图符号化 93
4.1 概述 93
4.2 ArcGIS Engine的颜色模型 93
4.3 Symbol 95
4.3.1 点符号:MarkerSymbol 96
4.3.2 线符号:LineSymbol 100
4.3.3 填充符号:FillSymbol 102
4.3.4 文本符号:TextSymbol 104
4.4 矢量数据符号化 107
4.4.1 矢量数据渲染 107
4.4.2 SimpleRenderer:简单符号化 108
4.4.3 UniqueValueRenderer:单一值符号化 109
4.4.4 ClassBreakRenderer:分级符号化 111
4.4.5 ProportionSymbolRender:比率符号渲染 113
4.4.6 DotDensityRenderer:点密度专题图 115
4.4.7 统计专题图 116
4.5 栅格数据符号化 123
4.5.1 概述 123
4.5.2 RasterRender类和IRasterRender接口 124
4.5.3 “唯一值”渲染器:UniqueValueRenderer 125
4.5.4 分类渲染器:ClassifyRenderer 127
4.5.5 拉伸渲染器:StretchRenderer 129
第5章 空间查询 133
5.1 概述 133
5.1.1 ArcMap的空间查询工具 133
5.1.2 常用接口 136
5.2 基于属性的查询 138
5.2.1 单属性查询 139
5.2.2 属性组合查询 140
5.3 基于空间关系的查询 148
5.3.1 相邻查询 149
5.3.2 穿越查询 151
5.3.3 包含关系查询 152
5.3.4 缓冲区查询 158
5.4 交互式空间查询 161
5.4.1 点查询 162
5.4.2 线查询 163
5.4.3 矩形查询 164
5.4.4 多边形查询 165
第6章 地理处理 166
6.1 地理空间分析模型与GP框架 166
6.1.1 地理空间分析模型 166
6.1.2 流程化地理处理与GP框架 167
6.2 GeoProcessor与GP执行方式 169
6.2.1 GeoProcessor与IGPProcess 169
6.2.2 GP同步与异步执行 173
6.3 使用Model Builder进行地理处理 188
6.3.1 模型构建器简介 188
6.3.2 ArcGIS Engine中调用Model Builder 189
6.4 使用Python进行地理处理 191
6.4.1 准备Python脚本 192
6.4.2 制作GP工具 192
6.4.3 GP工具测试 193
6.4.4 制作模型 194
6.4.5 ArcGIS Engine中调用 195
第7章 插件技术 197
7.1 插件技术概述 197
7.2 ArcGIS Engine的插件框架 198
7.2.1 Command 198
7.2.2 Tool 199
7.2.3 Toolbar和Menu 200
7.3 插件的开发 201
7.3.1 自定义Command开发 201
7.3.2 自定义Tool开发 208
7.4 反射机制与插件宿主的实现 212
7.4.1 反射 212
7.4.2 插件宿主的实现 214
第8章 数字地形分析 222
8.1 数字高程模型与数字地形分析 222
8.2 点位分析 222
8.3 剖面分析 226
8.4 坡度分析 244
8.5 通视分析 255
8.6 山顶点提取 267
第9章 北斗/GPS实时定位导航指挥系统 277
9.1 概述 277
9.1.1 卫星导航系统概述 277
9.1.2 GPS和北斗 278
9.1.3 北斗指挥系统基本原理 278
9.2 组播通信与实时定位数据模拟 279
9.2.1 松散耦合与组播通信 279
9.2.2 实时定位数据发送模拟器 281
9.3 实时定位数据接收与缓存 288
9.3.1 组播数据接收 288
9.3.2 地图数据包缓存 293
9.4 Dynamic Display与北斗目标监控 295
9.4.1 实时目标类的设计 295
9.4.2 Dynamic Display动态显示技术 297
9.4.3 基于Dynamic Display的北斗目标监控实现 299
9.5 Graphics Element与北斗目标监控 310
9.5.1 Graphics Element与Dynamic Display的比较 310
9.5.2 基于Graphics Element实现北斗目标监控 311
参考文献 319