第1章 GIS应用软件开发的基础理论 1
1.1地理信息系统的基本概念 2
1.1.1数据 2
1.1.2信息 2
1.1.3地理信息 3
1.1.4信息系统 4
1.1.5地理信息系统 5
1.1.6地理信息系统的分类 6
1.1.7地理信息系统的组成 7
1.1.8地理信息系统软件的功能 7
1.2空间地理位置 9
1.2.1空间直角坐标系 9
1.2.2地理坐标系 9
1.2.3平面直角坐标系 10
1.2.4地图投影 11
1.3应用型GIS开发的三种实现方式 12
1.3.1独立开发 12
1.3.2单纯二次开发 12
1.3.3集成二次开发 12
1.3.4三种实现方式的分析与比较 13
1.4GIS开发的组件技术 13
1.4.1软件开发的组件技术 13
1.4.2COM与DCOM 14
1.4.3ActiveX与ActiveX控件 15
1.4.4组件技术与GIS的发展 16
1.4.5组件式GIS的特点 17
1.4.6组件式GIS开发平台的结构 18
1.5地理信息系统的设计开发 18
1.5.1地理信息系统的设计方法 18
1.5.2开发过程模型 21
1.5.3地理信息系统工程开发步骤 22
1.5.4项目的进度管理 25
1.6地理信息系统的发展及趋势 27
1.6.1地理信息系统的发展 27
1.6.2地理信息系统的趋势 28
1.6.3GIS与GPS和RS的集成 30
1.6.4三维GIS 31
1.6.5GIS与虚拟现实的结合 31
1.6.6GIS中面向对象技术研究 32
1.6.7开放式地理信息系统 33
1.6.8多媒体GIS 33
1.6.9时态GIS 33
思考题 34
第2章 地理信息系统基本功能开发技术 35
2.1ArcGIS开发平台介绍 35
2.1.1ArcGIS简介 35
2.1.2ArcGIS的开发方式 36
2.1.3ArcGIS Engine简介 37
2.1.4ArcGIS Engine可实现的主要功能 38
2.2ArcGIS Engine的组件 39
2.2.1组件的加载 39
2.2.2MapControl控件 41
2.2.3PageLayoutControl控件 43
2.2.4ToolbarControl控件 45
2.2.5TOCControl控件 48
2.2.6GlobeControl和SceneControl控件 48
2.2.7控件之间的关联 48
2.3地理信息系统基本功能的设计开发 50
2.3.1图层的加载 50
2.3.2鹰眼功能的实现 57
2.3.3放大缩小功能的实现 60
2.3.4工具条的功能设计 62
2.3.5弹出式菜单的设计 63
2.3.6绘图及标注的编辑 65
2.3.7地图文档的保存 68
2.4信息检索功能的设计与实现 70
2.4.1检索方式及实现方法 70
2.4.2条件查询的设计示例 71
思考题 76
第3章 数据库设计与管理 77
3.1数据库的基本概念 78
3.1.1数据与文件组织 78
3.1.2数据模型 79
3.2GIS内部数据结构 79
3.2.1矢量模型 80
3.2.2栅格模型 80
3.3GIS空间数据库 81
3.3.1空间数据库 81
3.3.2空间数据库特点 81
3.3.3空间数据库引擎 82
3.3.4数据库的设计 85
3.4GIS数据库管理方法 86
3.4.1文件管理 87
3.4.2文件结合关系数据库管理 87
3.4.3关系数据库管理 87
3.4.4面向对象数据库管理 88
3.4.5对象关系数据库管理 88
3.5地理信息数据的采集与管理 89
3.5.1数据源 89
3.5.2数据的采集 90
3.5.3采集数据的管理方式 91
3.6Geodatabase 93
3.6.1Geodatabase概述 93
3.6.2Geodatabase的类型 96
3.6.3Geodatabase的表基础 97
3.6.4Geodatabase的要素基础 97
3.7数据库程序设计及开发 98
3.7.1ArcSDE 9.3 for SQL Server的安装 98
3.7.2ArcSDE数据库中导入矢量数据 104
3.7.3Geodatabase Workspace概述 106
3.7.4Workspace的相关对象 107
3.7.5Dataset 110
3.7.6Table、ObjectClass、FeatureClass 113
3.7.7Row、Object以及Feature 119
3.7.8Field 122
思考题 126
第4章 专题图的设计开发 127
4.1专题图的定义及类型 128
4.1.1专题图的定义 128
4.1.2专题图的类型 128
4.2专题图的颜色 129
4.2.1Color 130
4.2.2ColorRamp 133
4.3专题图的符号 138
4.3.1MarkerSymbol对象 138
4.3.2LineSymbol对象 148
4.3.3FillSymbol对象 155
4.3.4TextSymbol对象 164
4.3.5 3DChartSymbol对象 165
4.4专题图的AO对象模型 166
4.4.1FeatureRenderer对象 166
4.4.2RasterRenderer对象 166
4.5专题图的实现方法 167
4.5.1简单渲染 167
4.5.2独立值渲染 169
4.5.3点密度/多字段点密度 173
4.5.4数据分级绘制 175
4.5.5饼图/柱状图 179
4.5.6比例符号渲染 183
4.6专题图的综合实现示例 186
思考题 188
第5章 空间分析 189
5.1空间信息查询 190
5.1.1Cursor对象 190
5.1.2QueryFilter与SpatialFilter对象 194
5.1.3QueryDef对象 196
5.1.4TableSort对象 196
5.1.5要素选择集 197
5.2空间拓扑运算 198
5.2.1Boundary属性 199
5.2.2Buffer方法 201
5.2.3Clip方法 203
5.2.4ConstructUnion方法和Union方法 204
5.2.5ConvexHull方法 207
5.2.6Cut方法 208
5.2.7Difference方法 210
5.2.8Intersect方法 211
5.2.9IsSimple属性和Simplify方法 213
5.2.10SymmetricDifference方法 213
5.3空间关系分析 215
5.3.1Contains方法 215
5.3.2Crosses、Disjoint方法 215
5.3.3Overlaps方法 216
5.3.4Equals方法 216
5.3.5Touches方法 216
5.3.6Within方法 216
5.3.7空间关系示例代码 216
5.4缓冲区分析 218
5.5叠加分析 219
5.5.1叠加分析的基本概念 219
5.5.2叠加分析的方法 220
5.6网络分析 221
5.7示例代码 223
5.7.1空间查询及缓冲区分析 223
5.7.2空间拓扑运算示例 226
5.7.3网络分析 229
5.7.4空间关系分析 230
思考题 233
第6章 三维分析 234
6.1三维元素模型简介 235
6.1.1 3D矢量模型 235
6.1.2TIN 239
6.1.3Raster 240
6.2三维浏览查询 241
6.2.1文件的加载 241
6.2.2浏览功能的实现 244
6.2.3查询功能的实现 245
6.3MultiPatch的创建方法 247
6.3.1创建MultiPatch的常用接口 247
6.3.2通过输入点坐标创建MultiPatch 248
6.3.3通过拉伸平面创建MultiPatch 252
6.4空间插值分析 260
6.4.1IDW方法 260
6.4.2Krige方法 262
6.4.3Spline方法 263
6.4.4Trend方法 265
6.4.5Variogram方法 266
6.4.6等高线的生成 267
6.5外部三维模型的导入 272
6.6三维动画的程序实现方法 274
6.6.1Scene对象的获取 274
6.6.2三维图层对象 275
6.6.3三维输出对象 276
6.6.4三维视图对象 276
6.6.5示例程序1 277
6.6.6示例程序2 278
思考题 279
思考题答案 280
参考文献 291