第1章 地理信息系统设计与开发基础 1
1.1 地理信息系统的概念、产生和发展趋势 1
1.1.1 信息与信息系统 1
1.1.2 地理信息系统 1
1.1.3 地理信息系统的产生 3
1.1.4 当代地理信息系统的发展趋势 3
1.2 地理信息系统的分类 6
1.2.1 应用型地理信息系统 6
1.2.2 工具型地理信息系统 7
1.3 地理信息系统的软硬件环境 7
1.3.1 地理信息系统的硬件系统 8
1.3.2 地理信息系统的软件系统 9
1.3.3 地理信息系统的软硬件选择 13
1.4 地理信息系统的空间数据模型 15
1.4.1 矢量数据及其拓扑关系模型 15
1.4.2 栅格数据模型 16
1.4.3 属性数据及其表示 17
1.4.4 空间数据与属性数据的连接 17
1.4.5 数据模型与GIS功能之间的联系 17
1.5 空间数据质量及其控制 19
1.5.1 GIS空间数据质量的概述 19
1.5.2 GIS空间数据质量的内容 20
1.5.3 GIS空间数据质量的控制 22
1.6 流行开发工具及其分类 24
1.6.1 GIS开发工具简介 24
1.6.2 流行开发工具的分类 26
习题 28
第2章 地理信息系统设计与开发方法概述 29
2.1 信息系统设计与开发的基本方法 29
2.1.1 结构化生命周期法 29
2.1.2 原型化方法 31
2.1.3 面向对象方法 33
2.2 地理信息系统设计的特点、内容、步骤和方法概述 36
2.2.1 GIS设计的特点 36
2.2.2 GIS设计的内容 36
2.2.3 GIS设计的步骤 37
2.2.4 GIS设计方法概述 37
2.3 需求分析 38
2.3.1 需求分析的内容 38
2.3.2 可行性研究 39
2.3.3 可行性研究报告 40
2.3.4 需求分析和可行性研究的一般原则 41
2.4 系统总体设计 41
2.4.1 系统总体设计的内容 41
2.4.2 系统总体设计的步骤 43
2.4.3 系统总体设计的基本要求 44
2.4.4 系统总体设计应把握的基本原则 45
2.5 系统详细设计 46
2.5.1 GIS功能设计 46
2.5.2 地理数据库设计 47
2.5.3 应用模型与方法设计 48
2.6 GIS软件设计 50
2.6.1 应用型GIS软件设计的基本特点 50
2.6.2 信息描述 51
2.6.3 软件设计方法 53
2.7 用户界面设计 55
2.7.1 用户界面的作用 55
2.7.2 用户界面设计的原则 55
2.7.3 用户界面的主要类型及主要界面组件 56
2.7.4 GIS中常用的其他界面技术 60
习题 62
第3章 基于MapX的应用开发 63
3.1 MapInfo系列产品简介 63
3.1.1 MapInfo系统简介 63
3.1.2 MapInfo的主要技术特点 63
3.1.3 MapInfo地图组织 66
3.1.4 MapInfo系列的开发方法 70
3.2 MapX及其对象模型 71
3.2.1 MapX简介 71
3.2.2 MapX对象模型结构 71
3.2.3 实用工具GeoDictionary Manager和Geoset Manager 73
3.2.4 Map对象 75
3.2.5 图层(Layer)与图层集合(Layers) 77
3.2.6 图元(Feature)与图元集合(Features) 79
3.2.7 Parts集合 80
3.2.8 Selection集合 81
3.3 基于MapX的应用开发 82
3.3.1 基于控件开发GIS应用程序的体系结构 82
3.3.2 开发前的准备工作 83
3.3.3 MapX的调入与设置 84
3.3.4 基本地图操作功能的实现 88
3.3.5 图元的选取与简单空间查询 90
3.3.6 开发自定义地图工具 92
3.3.7 通过图元名称查找图元对象 97
3.3.8 图元编辑 99
3.3.9 为地图图元连接外部属性数据 106
3.3.10 专题地图制作 111
3.3.11 MapX地图的导出与打印 118
3.3.12 “鹰眼”——导航图编程 119
3.3.13 空间分析 125
3.3.14 为应用系统加入声、像多媒体信息 131
3.3.15 发布应用程序 135
第4章 基于ArcEngine的开发 139
4.1 组件对象模型(COM)与ArcObjects 139
4.1.1 组件对象模型(COM) 139
4.1.2 NET组件与COM组件的互操作 141
4.1.3 对象模型图(OMD) 141
4.1.4 AE类库 144
4.2 ArcEngine基础 144
4.2.1 ArcEngine控件 144
4.2.2 地图对象 150
4.2.3 地理数据的访问与创建 161
4.2.4 元素数据和PageLayoutControl 172
4.2.5 Geometry和Geoprocessing 183
4.2.6 查询要素 188
4.2.7 命令和工具 194
4.2.8 地图的显示 198
4.2.9 地图互动 203
4.2.10 地图编辑 210
4.3 栅格数据开发 218
4.3.1 栅格数据基础 218
4.3.2 栅格数据相关功能开发 220
第5章 开发GIS基本系统——以DigMap为例 226
5.1 使用专业开发工具与自行开发GIS基本系统的优缺点比较 226
5.1.1 使用专业开发工具进行GIS应用开发的优点与不足 226
5.1.2 自行开发GIS基本系统的优点与缺点 227
5.2 GIS基本系统的功能要求 229
5.2.1 矢量图形系统 229
5.2.2 遥感和栅格数据处理系统 230
5.2.3 属性数据管理及其数据库系统 233
5.2.4 矢量空间数据元素与属性数据库的链接 235
5.2.5 完整的空间数据管理、查询、统计、分析和图形图像输出功能 236
5.3 空间数据模型设计 236
5.3.1 DigMap的矢量数据模型 237
5.3.2 DigMap数据模型间的联系与组织 240
5.4 空间数据管理与数据库设计 241
5.4.1 地理信息的分层组织 241
5.4.2 数据层的类型属性 242
5.4.3 空间数据管理 243
5.4.4 空间数据库设计 245
5.5 矢量空间数据的输入与编辑 247
5.5.1 矢量数据输入、编辑作业的任务管理 247
5.5.2 空间数据编辑 255
5.5.3 写入空间数据库 256
5.6 矢量空间数据查询、检索的基本算法 256
5.6.1 点的抓取 256
5.6.2 折线、弧段的抓取 256
5.6.3 多边形的抓取与多边形拓扑 258
5.7 栅格数据处理 260
5.7.1 栅格数据的存储组织与处理模式 260
5.7.2 矢量数据的栅格化 260
5.7.3 栅格数据的压缩编码 262
5.8 基于数字高程矩阵的地表形态分析 265
5.8.1 获取数字高程矩阵数据 265
5.8.2 基于数字高程矩阵的地形分析 265
5.8.3 栅格数据的叠加分析 267
5.9 空间数据的显示 268
5.9.1 Windows的绘图机制与设备描述表 268
5.9.2 按比例缩放与坐标系统 270
5.9.3 裁剪、有效化及设备描述表的控制 273
5.9.4 绘图函数 273
5.9.5 按属性值大小渲染多边形区域 276
5.9.6 面要素透明叠加显示 278
5.10 GIS控件开发 280
5.10.1 GIS控件的功能设计 280
5.10.2 GIS控件的属性设计 282
5.10.3 GIS控件的方法 284
5.10.4 事件 286
5.10.5 控件使用 288
5.10.6 应用实例 291
习题 299
主要参考文献 301