1GIS开发与应用——SuperMap二次开发杜福光E-mail:dufug@163.com公共邮箱:zyglgh@163.com唐山师范学院·资源管理系2012年2月2SuperMap二次开发第1章组件式GIS概述第2章理解SuperMapGIS二次开发第3章SuperMapObjects开发基本知识第4章空间数据的显示和基本操作第5章空间查询第6章空间对象编辑第7章跟踪层(TrackingLayer)的应用第8章制图课程安排3第1章组件式GIS概述4本章目标掌握GIS开发与应用的有关概念了解GIS软件体系的发展状况掌握组件式GIS的特点熟悉目前国内外流行的GIS应用与开发平台56789101.1GIS开发与应用概述1.1.1GIS开发(1)含义用户根据特定需要,在一定的GIS开发平台基础上,经过二次开发而得到的功能扩展。第1章组件式GIS概述(2)开发策略A“自上而下”法(Top-bottomMethod)B“自下而上”法(Bottom-topMethod)C综合方法(ComprehensiveMethod)D企业系统规划法(BusinessSystemPlanning,BSP)11第1章组件式GIS概述自上而下自下而上BSP目标、战略功能一功能二……总目标日常业务1……日常业务2子系统1……子系统2企业内部战略管理层操作管理层策略管理层12第1章组件式GIS概述(3)开发步骤前期准备:立项、调研、可行性分析、用户需求分析;系统设计:总体设计、标准集的产生、系统详细设计、数据库设计;施工:软件开发、建库、组装、试运行、调试;运行:系统交付使用和更新。13图地理信息系统开发步骤(据边馥苓)14第1章组件式GIS概述(4)开发平台及功能GIS开发平台是指用户根据特定需要进行二次开发的工具型GIS。数据输入•数字化输入•图像扫描输入•表格数据录入•外部数据转换输入数据输出•图形输出•图像输出•统计图表•外部数据输出15缓冲区分析点周围的缓冲区多边形的缓冲区直线的缓冲区曲线的缓冲区加权的缓冲区第1章组件式GIS概述测量功能两点间直线距离两点间曲线或折线距离指定区域投影面积计算指定区域表面积计算指定区域体积计算16第1章组件式GIS概述DEM(数字高程模型)的地形分析功能•三维地形分析•产生高程等值线•坡度计算•坡向计算•地形剖面分析图•景物通视性分析•地形的挖/填方计算17陕西省府谷新区三维地形分析第1章组件式GIS概述18陕西省府谷新区高程等值线分析图第1章组件式GIS概述19陕西省府谷新区坡度分析第1章组件式GIS概述20陕西省府谷新区坡向分析图第1章组件式GIS概述21第1章组件式GIS概述地形剖面分析图22第1章组件式GIS概述通视性分析图23第1章组件式GIS概述其他空间分析功能•走廊分析(两点间移动最小费用)•叠置分析•最佳路径计算•坐标几何计算•网络分析地图本身特征的操作功能•比例尺变换(地图综合能力)•投影变换•几何变换(平移、旋转等)241.1.2GIS应用(1)含义GIS应用是指利用现成的或开发后的地理信息系统,分析、解决实际问题的一种技术手段,并产生一定的社会、经济效益。第1章组件式GIS概述(2)应用领域A在地方政府部门中的应用B在城市交通规划和管理中的应用C在城市基础设施管理中的应用D在社会经济和人文统计及商业中的应用25第1章组件式GIS概述图某县土地利用类型现状图26第1章组件式GIS概述图府谷新区土地规划图27第1章组件式GIS概述281.2GIS软件技术体系的发展地理信息系统(GeographicInformationSystem,简称GIS)是一门学科,更是一种技术,与IT密切相关。地理信息系统是在计算机软硬件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、存储、管理、运算、分析、显示和描述的技术系统。地理信息系统处理的是多种地理空间实体数据及其关系,包括图形数据、遥感图像数据、属性数据等,用于分析和处理在一定地理区域内分布的各种现象和过程,解决复杂的规划、决策和管理问题。构建一个地理信息系统平台来集中处理数据采集、存储、管理和分析输出等功能非常必要,因此软件是GIS的核心内容之一。第1章组件式GIS概述29GIS软件技术体系主要指GIS软件的组织方式,依赖于一定的软件技术基础,决定了GIS软件的应用方式、集成效率等许多方面的特点。从发展历程看,GIS软件技术体系可以划分为六个阶段,即:GIS模块、集成式GIS、模块化GIS、核心式GIS、组件式GIS和网络GIS。GIS软件技术的发展经历了从简单到复杂、从单一功能到多功能的逐渐成熟完善的发展过程。传统GIS大多是基于十多年前甚至更早的技术体系设计和开发的,在很大程度上限制了GIS软件的进一步发展和应用。计算机技术和全球信息技术的飞速发展,特别是面向对象(Object-Oriented)、可视化程序设计、组件式软件(ComponentsSoftware)、分布式计算(DistributedComputing)、多媒体(Multimedia)和Internet/Intranet等技术的不断出现和广泛应用,对GIS提出了新的技术要求,GIS软件发展到一个全新的阶段,出现了组件式GIS(ComponentsGIS)和网络GIS(简称WebGIS)。第1章组件式GIS概述30GIS模块集成式GIS模块化GIS核心式GISWebGIS组件式GISGIS软件体系发展集成式GIS指集合各种功能模块的大型GIS系统软件包。ESRI公司推出的Arc/Info,MapInfo公司的MapInfo等都是集成式的GIS开发工具。集成式GIS系统的优势是各项功能已形成独立的完整系统,提供了强大的数据输入输出功能、空间分析功能、良好的图形平台和可靠性能,缺点是系统复杂、庞大和成本较高,并且难于与其它应用系统集成。模块化GIS系统是把GIS系统按功能划分成一系列模块,运行于统一的基础环境中。Intergraph公司的MGE是具有代表性的模块化GIS系统。模块化GIS系统具有较强的工程针对性,便于开发和应用。核心式GIS提供了一系列动态连接库(DLL),开发GIS应用系统时可以采用现有的高级编程语言,通过应用程序接口(API)访问内核所提供的GIS功能。除了一些基本的动态连接库以外,实现各种功能的动态连接库可以被拆卸和重组,它提供了动态连接库一级的更底层的组件化方式,给用户提供更大的灵活性。第1章组件式GIS概述31传统GIS软件的局限性随着GIS应用领域的拓展,传统GIS软件的局限性日益突出,主要表现在应用中的开发负担过重、应用系统集成困难、二次开发语言复杂以及普及困难等几个方面。局限性:(1)开发负担过重(2)集成困难(3)开发语言复杂(4)难以普及第1章组件式GIS概述32GIS二次开发发展模式第1章组件式GIS概述1.独立开发2.宿主型二次开发3.基于GIS组件的二次开发33两种模式平台的结构:(1)C/S结构(2)B/S结构(1)C/S结构C/S模式系统以服务器作为数据处理和存储平台,在终端设计有专门的应用程序进行数据的采集和初次处理,再将数据传递到服务器端,用户必须使用客户端应用程序才能对数据进行操作。C/S模式具有交互性强、安全性好、专业化程度高、开发手段灵活、运行速度快等特点,但开发成本较高。C/S结构对客户端软硬件要求较高,尤其是软件的不断升级,对硬件要求不断提高,增加了整个系统的成本,客户端越来越臃肿。第1章组件式GIS概述34第1章组件式GIS概述其次,维护复杂,升级麻烦。如果应用程序要升级,必须为客户机一一升级,每个客户机上的应用程序都需要维护。此外,信息内容和形式单一。因为传统的信息系统一般为事务处理,界面基本遵循数据库的字段解释,开发之初就己确定,而且不能随时截取办公信息和档案等外部信息,获得的只是单纯的文字和数字。C/S模式是早期电子政务开发中主要应用的模式,C/S模式系统几乎可以适应任何的操作平台,开发技术也多种多样,大部分计算机语言都能开发出C/S模式的应用系统。随着Internet技术的发展及对信息系统的总体成本考虑,C/S模式逐渐暴露出许多缺点。35(2)B/S结构B/S模式的系统以服务器为核心,系统的开发者无需为不同级别的用户设计开发不同的应用程序,只要把所有的功能都实现在Web服务器上,并就不同的功能为不同级别的用户设置相应的权限就可以了。而各个用户通过HTTP请求在权限范围内调用Web服务器上不同处理程序完成相应的工作。系统升级时只需要升级服务器端程序就可以,不用升级客户端的应用程序。B/S模式具有易于升级,便于维护,客户端使用难度低、可移植性强等特点。第1章组件式GIS概述36第1章组件式GIS概述37第1章组件式GIS概述381.3组件式GIS的特点所谓组件式GIS,是指基于组件对象平台,以一组具有某种标准接口的、允许跨语言应用的组件提供的GIS。这种组件称为GIS组件,GIS组件之间以及GIS组件与其他组件之间可以通过标准的通信接口实现交互,这种交互甚至可以跨计算机实现。组件式GIS为新一代GIS应用提供了全新的开发工具。SuperMapObjects正是这样一个组件式GIS平台软件,同传统的GIS软件相比,组件式GIS具有多方面的特点:第1章组件式GIS概述391.3.1开发语言平台多样传统GIS一般都提供一套独立的二次开发语言。这既是GIS基础软件开发者的负担,同时也是用户学习上的负担;且使用系统所提供的二次开发语言,开发能力受到限制,难以处理复杂问题。组件式GIS不需要专门的GIS二次开发语言,只需实现GIS的基本功能函数,按照ActiveX控件标准开发接口,有利于减轻GIS软件开发者的负担,而且增强了GIS软件的可扩展性。组件式GIS的用户不必掌握专门的GIS开发语言,只需熟悉基于Windows平台的通用集成开发环境,以及组件式GIS各个控件的属性、方法和事件,就可以完成应用系统的开发和集成。组件式GIS控件可以跨语言使用,目前,可供选择的开发环境很多,如VisualC++、VisualBasic、VB.NET、C#、Delphi等。第1章组件式GIS概述40第1章组件式GIS概述411.3.2可扩展性在组件式软件技术背后,有一个十分庞大的组件资源库,用户可以从不计其数的组件中挑选需要的组件与组件式GIS一起集成应用系统,极大地扩展了GIS的功能。全球范围内有许多软件公司在编写各种各样的控件,这些第三方(ThirdParties)控件差不多可以解决任何通用软件编程中所遇到的问题,从简单的命令按钮到动态的三维统计图,从多媒体播放到超文本显示,几乎无所不有。这些控件中有商业软件,也有价格很低的共享软件甚至免费软件。组件式GIS是组件大家族中的一员,使用组件式GIS集成应用系统,具有无限的扩展性。加上开发平台本身日新月异,发展迅速,如VisualStudio.NET,因此,使用组件式GIS结合这些开发平台,可以更好地进行系统扩展。第1章组件式GIS概述421.3.3可视化程序设计可以使用ActiveX控件的开发语言几乎都支持可视化程序设计,因此,使用组件式GIS控件集成应用系统,能可视化地设计系统界面,在窗口上布局按钮、列表框、图片框和GIS控件等,可以立即反馈窗口界面的外观,实现所见即所得(Whatyousee,whatyouget——WYSWYG)的界面设计。相反,使用传统GIS软件进行二次开发则需要反复的猜测和实验。第1章组件式GIS概述431.3.4伸缩性以SuperMapObjects为例,它提供了从数据输入、数据处理、空间数据存储与管理到空间分析、地图排版输出等包括各个环节的多个组件,这些组件可供用户自由组合选择,具有很强的伸缩性。第1章组件式GIS概述44表1.2SuperMapObjects提供的控件及功能描述组件名称功能核心组件(SuperMap控件)提供地理信息系统的基础的、核心的功能,用于显示地图、进