《GIS设计与开发》实习指导书刘琳主编石河子大学师范学院地理系2008年9月
《GIS 设计与开发》 实习指导书 刘琳 主编 石河子大学师范学院地理系 2008 年 9 月
前言地理信息系统(GeographicInformationSystem,简称GIS)是上世纪60年代发展起来的新兴学科。四干几年的发展历程中,GIS极大地拓宽了信息系统技术的应用范围和应用深度,特别随计算机硬、软件技术的快速发展,目前正处在一个极快的发展阶段,其应用已不仅限于测绘、地矿、制图、资源与环境管理等传统领域,其在设施管理、交通管理、工程建设、城市规划、灾害防治、灾害评估、文物考古等领域中也愈来愈扮演着重要的角色。此外,GIS还进入了军事战略分析、商业策划和文化教育等更为广泛的领域,甚至还和其他科学技术结合,进入了普通人的生活。GIS区别于其它管理信息系统的最主要特征,就是其具有管理地理空间数据,并能按照其在实际空间的相对位置关系对之进行处理分析的能力一一空间分析能力,组成了GIS实际应用的主要方面。地理信息系统二次开发技术是GIS及相关学科工作者必须熟练掌握的技能之一。集成式二次开发方法中,组件式软件技术已成为当今软件技术的潮流之一。专业GIS专业GIS工具软件生产厂家都提供了GIS功能组件(如ESRI的MapObjects,Maplnfo公司的MapX,中科院地理信息中心SuperMap的SuperMapObject等),可以通用软件开发工具尤其是可视化开发工具,如Delphi,VisualC++,VisualBasic,PowerBuilder等为开发平台,进行二者的集成开发,也是目前流行的开发方法。石河子大学师范学院地理系《GIS设计与开发》课程最早开设于2005年,面向地理信息系统方向学生开设。几年来地理信息系统设计与开发课程在师资队伍、教学标准和教学资料积累方面均有很大加强。目前地理信息系统二次开发方面的书籍较少,适合教学实习的指导书更少。有鉴于此,根据教学需要和近几年从事GIS科研和应用的实际,笔者编译了这本参考书籍,可作为本科GIS设计与开发课程的教学辅助材料和学生上机实习的参考用书,可与有关教材、手册配合使用。本书主要以MapObjects及VisualBasic6.0为平台和工具设计所有实习环节,使用数据来源于石河子大学师范学院地理系GIS教学资源库。由于时间紧迫,缺乏笔者水平和经验所限,书中难免存在纸漏之处,恩求读者批评指正。刘琳2008年9月于石河子大学2
2 前 言 地理信息系统(Geographic Information System,简称 GIS)是上世纪 60 年代发展起 来的新兴学科。四十几年的发展历程中,GIS 极大地拓宽了信息系统技术的应用范围和应 用深度,特别随计算机硬、软件技术的快速发展,目前正处在一个极快的发展阶段,其应 用已不仅限于测绘、地矿、制图、资源与环境管理等传统领域,其在设施管理、交通管理、 工程建设、城市规划、灾害防治、灾害评估、文物考古等领域中也愈来愈扮演着重要的角 色。此外,GIS 还进入了军事战略分析、商业策划和文化教育等更为广泛的领域,甚至还 和其他科学技术结合,进入了普通人的生活。GIS 区别于其它管理信息系统的最主要特征, 就是其具有管理地理空间数据,并能按照其在实际空间的相对位置关系对之进行处理分析 的能力——空间分析能力,组成了 GIS 实际应用的主要方面。 地理信息系统二次开发技术是 GIS 及相关学科工作者必须熟练掌握的技能之一。集成 式二次开发方法中,组件式软件技术已成为当今软件技术的潮流之一。专业 GIS 专业 GIS 工具软件生产厂家都提供了 GIS 功能组件(如 ESRI 的 MapObjects,MapInfo 公司的 MapX, 中科院地理信息中心 SuperMap 的 SuperMap Object 等),可以通用软件开发工具尤其是可视 化开发工具,如 Delphi,Visual C++, Visual Basic, Power Builder 等为开发平台,进行二 者的集成开发,也是目前流行的开发方法。 石河子大学师范学院地理系《GIS 设计与开发》课程最早开设于 2005 年,面向地理 信息系统方向学生开设。几年来地理信息系统设计与开发课程在师资队伍、教学标准和教 学资料积累方面均有很大加强。 目前地理信息系统二次开发方面的书籍较少,适合教学实习的指导书更少。有鉴于此, 根据教学需要和近几年从事 GIS 科研和应用的实际,笔者编译了这本参考书籍,可作为本 科 GIS 设计与开发课程的教学辅助材料和学生上机实习的参考用书,可与有关教材、手册 配合使用。本书主要以 MapObjects 及 Visual Basic6.0 为平台和工具设计所有实习环节 , 使用数据来源于石河子大学师范学院地理系 GIS 教学资源库。 由于时间紧迫,缺乏笔者水平和经验所限,书中难免存在纰漏之处,恳求读者批评指 正。 刘 琳 2008 年 9 月于石河子大学
目录第一章GIS二次开发概述5一、独立开发二、单纯二次开发、5三、集成二次,5第二章MapObjects简介7、MO概述二、MO的功能88三、MO支持的数据格式四、MO对象9五、如何学习MO.13第三章VB环境下的MO和系统界面设计1629第四章图层和数据操作第五章地图显示范围操作38第六章矢量数据属性查询,40第七章49地图的谊染(符号化表示)与标注第八章.68几何对象操作.3
3 目 录 第一章 GIS 二次开发概述.5 一、独立开发.5 二、单纯二次开发.5 三、集成二次.5 第二章 MapObjects 简介.7 一、MO 概述.7 二、MO 的功能.8 三、MO 支持的数据格式.8 四、MO 对象.9 五、如何学习 MO.13 第三章 VB 环境下的 MO 和系统界面设计.16 第四章 图层和数据操作.29 第五章 地图显示范围操作.38 第六章 矢量数据属性查询.40 第七章 地图的渲染(符号化表示)与标注.49 第八章 几何对象操作.68
第一章GIS 二次开发概述GIS根据其内容可分为两大基本类型:一是工具型GIS,也就是GIS工具软件包(如Arc/Info等),具有空间数据输入、存储、处理、分析和输出等基本功能;二是应用型GIS,以某一专业、领域或工作为主要内容,包括专题GIS和区域综合GIS。随着GIS应用领域的扩展,应用型GIS的开发工作日显重要。如何针对不要的应用目标,高效的开发出既合乎需要又具有方便、美观、丰富的界面形式的GIS,是GIS开发者非常关心的问题。目前主要有三种方式:一、独立开发独立开发指不依赖任何GIS工具软件,从空间数据输入、存储、处理到分析和输出等基本功能,所有算法由开发者独立设计,然后选用某程序设计语言(C++,Delphi)在一定操作平台上编程实现。其好处在于无须依赖GIS商业软件,可减少开发成本,但开发难度大,产品也很难与商业化GIS软件相比。二、单纯二次开发单纯二次开发指完全借助GIS工具软件提高的开发语言(主要为宏语言,如ESRI的ArcView提供Avenue语言,MapInfo公司研制的MapInfoProfessional提供了MapBasic语言等)进行应用系统开发;该方式虽省时省心,但编程语言功能很弱,程序不尽人意。三、集成二次开发集成二次开发指利用专业GIS工具软件(如ArcVieW,MapInfo等)实现GIS基本功能,,以通用软件开发工具尤其是可视化开发工具,如Delphi,VisualC++,VisualBasic,PowerBuilder等为开发平台,进行二者的集成开发;利用专业GIS工具软件生产厂家提供的建立在OCX技术基础上的GIS功能组件,(如ESRI的MapObjects,MapInfo公司的MapX等),在Delphi,VisualC++,VisualBasic等编程工具的应用程序中,直接嵌入GIS模块,实现GIS各种功能
4 第一章 GIS 二次开发概述 GIS 根据其内容可分为两大基本类型:一是工具型 GIS,也就是 GIS 工具软件包(如 Arc/Info 等),具有空间数据输入、存储、处理、分析和输出等基本功能;二是应用型 GIS, 以某一专业、领域或工作为主要内容,包括专题 GIS 和区域综合 GIS。随着 GIS 应用领域的 扩展,应用型 GIS 的开发工作日显重要。如何针对不要的应用目标,高效的开发出既合乎需 要又具有方便、美观、丰富的界面形式的 GIS,是 GIS 开发者非常关心的问题。 目前主要有三种方式: 一、 独立开发 独立开发指不依赖任何 GIS 工具软件,从空间数据输入、存储、处理到分析和输出等 基本功能,所有算法由开发者独立设计,然后选用某程序设计语言(C++,Delphi)在一定操 作平台上编程实现。其好处在于无须依赖 GIS 商业软件,可减少开发成本,但开发难度大, 产品也很难与商业化 GIS 软件相比。 二、单纯二次开发 单纯二次开发指完全借助 GIS 工具软件提高的开发语言(主要为宏语言,如 ESRI 的 ArcView 提供 Avenue 语言,MapInfo 公司研制的 MapInfo Professional 提供了 MapBasic 语 言等)进行应用系统开发;该方式虽省时省心,但编程语言功能很弱,程序不尽人意。 三、集成二次开发 集成二次开发指利用专业 GIS 工具软件( 如 ArcView, MapInfo 等)实现 GIS 基本 功能,以通用软件开发工具尤其是可视化开发工具,如 Delphi,Visual C++, Visual Basic, Power Builder 等为开发平台,进行二者的集成开发; 利用专业 GIS 工具软件生产厂家提供的建立在 OCX 技术基础上的 GIS 功能组件,( 如 ESRI 的 MapObjects, MapInfo 公司的 MapX 等),在 Delphi,Visual C++, Visual Basic 等编程工具的应用程序中,直接嵌入 GIS 模块,实现 GIS 各种功能
第二章MapObjects简介一、MapObjects概述MapObjects简称MO,是ESRI公司开发的一组供开发人员使用的制图与GIS功能组件(ActiveX控件)。MapObjects是一套制图软件集,它使程序员能够把地图加到应用程序中去。通过MapObjects可灵活地建立适合用户的地图接口。在小内存空间中,你能用多种工业标准程序环境之一去建立应用程序,你能够联合使用MapObjects与其它软件去实现地图与用户信息的联系。MO目前使用的主要版本为2.0、2.1和2.2。MO2.0于1999年发布;MO2.1于2001年3月,增加了CAD、ArcSDE、StreetMap等文件格式的支持功能;MO2.2发布于2003年1月,主要增加直接读取GIF和TIFF文件等功能。MapObjects2.0由一个Map控件和46个可编程ActiveX对象所组成,可以直接插入到许多标准开发环境的工具集中,包括VB、Delphi、VisualC++、PowerBuilder等流行的程序设计环境。MapObjects2.2增加了Legend和Scalebar控件。MapObjects2.0由一个Map控件和46个可编程ActiveX对象所组成,分为5大类:-数据操作对象类(10个)■地图显示对象类(17个)■投影对象类(8个)-图形对象类(7个)■地址匹配对象类(4个)它们可以直接插入到许多标准开发环境的工具集中,包括VB、Delphi、VisualC++、PowerBuilder等流行的程序设计环境;二、MapObjects功能-显示具有多个图层的地图-地图的放大、缩小和漫游园增加点、线、圆和多边形等各种图形一增加文本-显示特征的属性5
5 第二章 MapObjects 简介 一、 MapObjects 概述 MapObjects 简称 MO,是 ESRI 公司开发的一组供开发人员使用的制图与 GIS 功能组 件(ActiveX 控件)。MapObjects 是一套制图软件集,它使程序员能够把地图加到应用程序 中去。 通过 MapObjects 可灵活地建立适合用户的地图接口。在小内存空间中,你能用多种工业 标准程序环境之一去建立应用程序,你能够联合使用 MapObjects 与其它软件去实现地图与 用户信息的联系。 MO 目前使用的主要版本为 2.0、2.1 和 2.2。MO2.0 于 1999 年发布;MO2.1 于 2001 年 3 月,增加了 CAD、ArcSDE、StreetMap 等文件格式的支持功能;MO2.2 发布于 2003 年 1 月,主要增加直接读取 GIF 和 TIFF 文件等功能。MapObjects 2.0 由一个 Map 控件和 46 个 可编程 ActiveX 对象所组成,可以直接插入到许多标准开发环境的工具集中,包括 VB、 Delphi、Visual C++、PowerBuilder 等流行的程序设计环境。MapObjects 2.2 增加了 Legend 和 Scalebar 控件。 MapObjects 2.0 由一个 Map 控件和 46 个可编程 ActiveX 对象所组成,分为 5 大类: ◼ 数据操作对象类(10 个) ◼ 地图显示对象类(17 个) ◼ 投影对象类(8 个) ◼ 图形对象类(7 个) ◼ 地址匹配对象类(4 个) 它们可以直接插入到许多标准开发环境的工具集中,包括 VB、Delphi、Visual C++、 PowerBuilder 等流行的程序设计环境; 二、MapObjects 功能 ◼ 显示具有多个图层的地图 ◼ 地图的放大、缩小和漫游 ◼ 增加点、线、圆和多边形等各种图形 ◼ 增加文本 ◼ 显示特征的属性