本书在系统介绍GIS的有关概念与分类、软硬件环境、空间数据模型、空间数据质量、流行开发工具及其分类、开发基本方法、总体设计、详细没计及其相关技术的基础上,主要以 Mapx、ArcEngine两种典型的GIS组件化开发工具为例,详细介绍了应用型地理信息系统的设计与歼发技术;同时,《地理信息系统设计与开发(第2 版)》汇集作者多年的教学与科研实践,以作者自行开发的GIS基本软件系统——DigMap为例,介绍了GIS基础软件系统及GIS组件设计与开发中的一些核心与关键问题,包括空间数据模型、空间数据管理、空问查询检索基本算法、空间分析模型实现,GIS组件的属性、事件和方法设计等,为读者提供了一个尝试GIS基本软件系统设计与开发的典型范例。本书由陈正江,张兴国编著。
《普通高等院校"十二五"规划教材:地理信息系统设计与开发(第2版)》既可作为高等院校地理信息系统、测绘等专业本科生、研究生教材,也可供相关专业人员参考。
第二版前言 第一版前言 第1章 地理信息系统设计与开发基础 1.1 地理信息系统的概念、产生和发展趋势 1.1.1 信息与信息系统 1.1.2 地理信息系统 1.1.3 地理信息系统的产生 1.1.4 当代地理信息系统的发展趋势 1.2 地理信息系统的分类 1.2.1 应用型地理信息系统 1.2.2 工具型地理信息系统 1.3 地理信息系统的软硬件环境 1.3.1 地理信息系统的硬件系统 1.3.2 地理信息系统的软件系统 1.3.3 地理信息系统的软硬件选择 1.4 地理信息系统的空间数据模型 1.4.1 矢量数据及其拓扑关系模型 1.4.2 栅格数据模型 1.4.3 属性数据及其表示 1.4.4 空间数据与属性数据的连接 1.4.5 数据模型与GIS功能之间的联系 1.5 空间数据质量及其控制 1.5.1 GIS空间数据质量的概述 1.5.2 GIS空间数据质量的内容 1.5.3 GIS空间数据质量的控制 1.6 流行开发工具及其分类 1.6.1 GIS开发工具简介 1.6.2 流行开发工具的分类 习题 第2章 地理信息系统设计与开发方法概述 2.1 信息系统设计与开发的基本方法 2.1.1 结构化生命周期法 2.1.2 原型化方法 2.1.3 面向对象方法 2.2 地理信息系统设计的特点、内容、步骤和方法概述 2.2.1 GIS设计的特点 2.2.2 GIS设计的内容 2.2.3 GIS设计的步骤 2.2.4 GIS设计方法概述 2.3 需求分析 2.3.1 需求分析的内容 2.3.2 可行性研究 2.3.3 可行性研究报告 2.3.4 需求分析和可行性研究的一般原则 2.4 系统总体设计 2.4.1 系统总体设计的内容 2.4.2 系统总体设计的步骤 2.4.3 系统总体设计的基本要求 2.4.4 系统总体设计应把握的基本原则 2.5 系统详细设计 2.5.1 GIS功能设计 2.5.2 地理数据库设计 2.5.3 应用模型与方法设计 2.6 GIS软件设计 2.6.1 应用型GIS软件设计的基本特点 2.6.2 信息描述 2.6.3 软件设计方法 2.7 用户界面设计 2.7.1 用户界面的作用 2.7.2 用户界面设计的原则 2.7.3 用户界面的主要类型及主要界面组件 2.7.4 GIS中常用的其他界面技术 习题 第3章 基于MapX的应用开发 3.1 MapInfo系列产品简介 3.1.1 MapInfo系统简介 3.1.2 MapInfo的主要技术特点 3.1.3 MapInfo地图组织 3.1.4 MapInfo系列的开发方法 3.2 MapX及其对象模型 3.2.1 MapX简介 3.2.2 MapX对象模型结构 3.2.3 实用工具GeoDictionary Manager和Geoset Manager 3.2.4 Map对象 3.2.5 图层(Layer)与图层集合(Laye) 3.2.6 图元(Feature)与图元集合(Features) 3.2.7 PanS集合 3.2.8 Selection集合 3.3 基于MapX的应用开发 3.3.1 基于控件开发GIS应用程序的体系结构 3.3.2 开发前的准备工作 3.3.3 MapX的调入与设置 3.3.4 基本地图操作功能的实现 3.3.5 图元的选取与简单空间查询 3.3.6 开发自定义地图工具 3.3.7 通过图元名称查找图元对象 3.3.8 图元编辑 3.3.9 为地图图元连接外部属性数据 3.3.10 专题地图制作 3.3.11 MapX地图的导出与打印 3.3.12 “鹰眼”——导航图编程 3.3.13 空间分析 3.3.14 为应用系统加入声、像多媒体信息 3.3.15 发布应用程序 第4章 基于ArcEngine的开发 4.1 组件对象模型(COM)与ArcObectS 4.1.1 组件对象模型(COM) 4.1.2 NET组件与COM组件的互操作 4.1.3 对象模型图(OMD) 4.1.4 AE类库 4.2 ArcEngine基础 4.2.1 ArcEngine控件 4.2.2 地图对象 4.2.3 地理数据的访问与创建 4.2.4 元素数据和PageLayoutControl 4.2.5 Geometry和Geoprocessing 4.2.6 查询要素 4.2.7 命令和工具 4.2.8 地图的显示 4.2.9 地图互动 4.2.10 地图编辑 4.3 栅格数据开发 4.3.1 栅格数据基础 4.3.2 栅格数据相关功能开发 第5章 开发GIS基本系统——以DigMap为例 5.1 使用专业开发工具与自行开发GIS基本系统的优缺点比较 5.1.1 使用专业开发工具进行GIS应用开发的优点与不足 5.1.2 自行开发GIS基本系统的优点与缺点 5.2 GIS基本系统的功能要求 5.2.1 矢量图形系统 5.2.2 遥感和栅格数据处理系统 5.2.3 属性数据管理及其数据库系统 5.2.4 矢量空间数据元素与属性数据库的链接 5.2.5 完整的空间数据管理、查询、统计、分析和图形图像输出功能 5.3 空间数据模型设计 5.3.1 DigMap的矢量数据模型 5.3.2 DigMap数据模型间的联系与组织 5.4 空间数据管理与数据库设计 5.4.1 地理信息的分层组织 5.4.2 数据层的类型属性 5.4.3 空间数据管理 5.4.4 空间数据库设计 5.5 矢量空间数据的输入与编辑 5.5.1 矢量数据输入、编辑作业的任务管理 5.5.2 空间数据编辑 5.5.3 写入空间数据库 5.6 矢量空间数据查询、检索的基本算法 5.6.1 点的抓取 5.6.2 折线、弧段的抓取 5.6.3 多边形的抓取与多边形拓扑 5.7 栅格数据处理 5.7.1 栅格数据的存储组织与处理模式 5.7.2 矢量数据的栅格化 5.7.3 栅格数据的压缩编码 5.8 基于数字高程矩阵的地表形态分析 5.8.1 获取数字高程矩阵数据 5.8.2 基于数字高程矩阵的地形分析 5.8.3 栅格数据的叠加分析 5.9 空间数据的显示 5.9.1 Windows的绘图机制与设备描述表 5.9.2 按比例缩放与坐标系统 5.9.3 裁剪、有效化及设备描述表的控制 5.9.4 绘图函数 5.9.5 按属性值大小渲染多边形区域 5.9.6 面要素透明叠加显示 5.10 GIS控件开发 5.10.1 GIS控件的功能设计 5.10.2 GIS控件的属性设计 5.10.3 GIS控件的方法 5.10.4 事件 5.10.5 控件使用 5.10.6 应用实例 习题 主要参考文献
2.7 用户界面设计
2.7.1 用户界面的作用
作为一种软件产品,无论应用型地理信息系统,还是工具型地理信息系统,用户界面对软件使用效果都是极为重要的,主要表现在以下几个方面。
1)为用户提供一个易学、易用的使用环境
软件系统的所有功能都是通过用户界面介绍给用户,并引导用户使用的。所以,用户界面应当为用户提供一个易学、易用的使用环境。良好的用户界面,逻辑清晰、层次分明、切合用户的专业水平,容易将软件的功能系统地展现给用户。
2)引导用户正确使用软件功能
地理信息系统一般都具有较为复杂的功能结构。用户界面重要的功能之一,就是引导用户正确使用软件功能。在用户选择某功能操作时,应循序渐进地引导用户逐个满足该操作必需的执行条件,并适时和自动地生成功能需要的一些窗口与对话框等。
3)避免用户使用软件时出现的逻辑错误
现代的软件系统,功能都很复杂,用户使用过程中,难免不出现逻辑上或其他方面的错误,而良好的用户界面,都能在一定程度上防范这些错误的发生。例如,当某种功能尚不具备执行条件时,界面上执行该功能的菜单或图标变为不可选(变成灰色),而当条件满足时又自动变为可选(正常)。
4)提供完善的帮助系统
良好的用户界面,一般都具有完善的帮助系统,以随时提供使用者查询或引导用户解决出现的问题。而且这种帮助系统也具有一定的智能化性质,如随着出现的错误自动打开相关的帮助内容等。
5)纠正可能的错误操作
完善、良好的用户界面,还可能在一定程度上纠正用户可能的误操作,如对有些常犯错误进行强制纠正。
2.7.2 用户界面设计的原则
在地理信息系统中,用户界面的设计,关键是把握实用、美观两个基本点,并注重以下一些基本原则。
1)简易性原则
即用户界面的设计,尽可能简单和易于使用。作为一种软件,地理信息系统一般都具有庞大的规模、复杂的结构和众多的功能,如果组织不好,逻辑不清,很容易形成复杂的用户界面,并由此给用户带来使用中的茫然。