第一章应用型GIS开发概论ppt课件.ppt
组件式GIS,ComGIS,2,第一章 应用型GIS开发概论,3,本章内容,1 GIS应用模式2 GIS开发方式3 理解GIS组件4 SuperMap Objects 基本概念5 SuperMap Objects 对象结构6 SuperMap Objects 空间数据引擎,4,教学内容,1 GIS应用模式2 GIS开发方式3 理解GIS组件,5,教学目标,掌握以下内容:GIS应用系统的组件开发模式GIS组件产品组件式GIS开发平台的结构,6,1.GIS应用模式,GIS软件类型,通用GIS平台软件,GIS应用软件,7,通用GIS平台软件,通用GIS平台软件特点:提供全部的地理信息系统处理功能:数据处理、空间分析、信息查询、专题地图等功能。一般为系列软件的桌面版常见的GIS平台软件 ArcGIS MapInfo Professional MAPGIS SuperMap DeskPro GeoStar,8,GIS应用软件,GIS应用软件特点:针对具体的应用领域和行业,综合了电子地图和信息管理系统的应用系统软件。大部分应用系统不单纯是GIS系统功能,结合了MIS与GIS两类系统的应用。 例如XX公司物流配送系统电力巡检系统城市基础设施管理系统数字校园,9,GIS与MIS,GIS侧重于对空间数据的处理和分析。MIS对传统意义的属性数据处理。GMISMISGIS组件式地理信息系统的出现,较好地实现了管理信息系统和地理信息系统的无缝集成。,10,GIS应用软件分类,GIS应用软件,科学研究工具软件,办公服务系统软件,地学研究,涉及空间数据政府及企业,11,办公服务系统,办公服务系统,空间事务处理系统,专家系统,空间管理信息系统,空间决策支持系统,12,GIS应用三元划分,小型,大型,中型,军事,城市规划,资源管理划,交通管理,STPS,SMIS,SDSS,SES,13,GIS应用软件实例,电力设施管理类 :海淀区西北四环夜景照明控制系统电信与有线电视网络资源管理 :赤峰移动公司GIS系统设施管理 :光纤路由管理地理信息系统交通与GPS监控 :基于上海交通信息网格的智能导航系统城市规划和房产管理 :城市网格化管理信息系统平台土地管理 :石家庄城镇地籍管理信息系统工商、卫生与统计 :海尔集团顾客服务电子地图系统,14,GIS应用软件实例,公安与消防 :芜湖市公安局“警用地理信息系统”农业与林业 :九三油脂集团大豆制品销售地理信息管理系统水利和环境 :洪水风险图制作与管理系统简介地质与矿产 :煤矿安全实时监测网络信息管理系统 商业应用 :农行地图导航及效益测评系统大众GIS应用 :数字峨眉山地理信息系统综合管线 :城市燃气地下管网快速定位解决方案其它应用 :日本和歌山县计划型网络地理信息系统,15,2. GIS开发方式,GIS开发内容,GIS平台开发,GIS(应用系统)二次开发,16,GIS二次开发的方式,GIS二次开发方式,独立开发,GIS组件开发,宿主型(单纯)二次开发,17,独立开发,特点不依赖任何GIS工具设计自己的底层的空间数据结构。从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选用某种程序设计语言,如Visual C+、Delphi、等,在一定的操作系统平台上编程实现。优点:不依赖任何GIS开发商,具有独立产权。缺点:开发周期长,软件功能相对简单,对开发者要求 高.成本过高。用于购买软件的费用相对节省。,18,宿主型二次开发,特点基于某一GIS平台软件使用GIS平台软件提供的二次开发宿主语言编制应用程序,进行应用系统开发。常用宿主语言:MapInfo提供二次开发语言MapBasic;Arcinfo提供二次开发语言AVENUE。优点:可以使用原GIS软件平台的所有功能。缺点:所开发的系统不能脱离GIS平台;是解释执行的,运行效率低;用户界面受平台软件的限制。所提供的二次开发语言大都相对简单,难以开发相对复杂的分析模型,而且开发人员要重新学习一门新的开发语言。,19,GIS组件开发,特点基于GIS开发商提供的GIS组件用开发人员自选的开发应用语言工具便于与其他系统结合(MIS)质量、效率高,20,GIS开发模式的选择,独立开发难度太大,适用于专业系统软件开发机构。宿主型二次开发受GIS平台、及所提供的脚本语言的限制。GIS组件开发模式结合了GIS平台软件与可视化开发平台的组件开发模式的优点。利用GIS组件实现对空间数据库的管理、分析功能,又可以利用其它可视化开发平台提供的丰富的、功能强大的编程组件和环境,不仅能大大提高应用系统的开发效率,而且使用可视化软件开发工具开发出来的应用程序具有更好的用户界面,更强大的数据库功能。可靠性好、易于移植、便于维护,学习周期较短,容易上手。成为GIS应用开发的主要方向。,21,3.理解GIS组件,软件重用技术组件COMDCOMActiveXActiveX控件GIS 组件组件式GIS,22,软件重用技术,面向模块原代码级拷贝函数,模块 面向对象,等于应用功能的重用 类组件面向服务架构体系(SOA)既然应用中的对象已经可以重用,下一步就是把业务流程拆解为可重用的子流程,重用的程度上升为业务流程设计层面,所谓服务就是为业务流程用户提供的实现平台,能尽可能地重用,企业的业务支撑就可以快速组建,业务流程可以快速重造。SOA的五大关键因素有两个是作基础支撑的,一个是连通,另一个就是重用,重用是SOA快捷支撑企业业务能力的灵魂。,23,3.理解GIS组件,组件是一种软件重用技术在组件技术的概念模式下,软件系统可以被视为相互协同工作的对象集合,其中每个对象都会提供特定的服务,发出特定的消息,并且以标准形式公布出来,以便其他对象了解和调用。组件间的接口通过一种与平台无关的语言IDL(Interface Define Language)来定义,而且是二进制兼容的,使用者可以直接调用执行模块来获得对象提供的服务。早期的类库,提供的是原代码级的重用,只适用于比较小规模的开发形式;而组件则封装得更加彻底,更易于使用,并且不限于C之类的语言,可以在各种开发语言和开发环境中使用。,24,组件,组件:是构成某个整体的各个部件,通常这些部件都按照某种通用的标准被定义和生产。汽车组件:汽车的各种总成,可以根据用户的需要,把不同的发动机、变速箱、底盘、驾驶室、轮胎等等组装成满足用户特定需要的汽车。,25,COM,COM:是组件式对象模型(Component Object Model)的英文缩写,是组件之间相互接口的规范,是OLE(Object Linking & Embedding)和ActiveX共同的基础,其作用是使各种软件构件和应用软件能够用一种统一的标准方式进行交互。COM不是一种面向对象的语言,而是一种与源代码无关的二进制标准。COM所建立的是一个软件模块与另一个软件模块之间的链接,当这种链接建立之后,模块之间就可以通过称之为“接口”的机制来进行通信。COM本质上是客户/服务器模式。客户(通常是应用程序)请求创建COM对象并通过COM对象的接口操纵COM对象。服务器根据客户的请求创建并管理COM对象。客户和服务器这两种角色是相对的。,26,COM组件示意图,27,DCOM,DCOM:(Distribute COM,分布式组件对象模型)。基于分布式环境下的COM。DCOM是ActiveX的基础,它实现了COM对象与远程计算机上的另一个对象之间直接进行交互。,28,ActiveX与ActiveX控件,ActiveX:是Microsoft提出的一组基于COM(Component Object Model,组件对象模型)规范使得软件组件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被 用于方便地创建普通的桌面应用程序,29,ActiveX的内容,ActiveX控件(ActiveX Control):用于向WEB页面、Microsoft Word等支持ActiveX 技术的容器(Container)中插入COM对象;ActiveX文档(ActiveX Document):用于在Web Browser或者其它支持ActiveX的容器中浏览复合文档(非HTML文档),例如Microsoft Word文档、Microsoft Excel文档或者用户自定义的文档等,30,ActiveX的内容,ActiveX脚本(ActiveX Scripting)用于从客户端或者服务器端操纵ActiveX控件和Java程序、传递数据以及协调它们之间的操作等;ActiveX服务器框架(ActiveX Server Framework):提供了一系列针对Web服务器应用程序设计各个方面的函数及其封装类,诸如服务器过滤器、HTML数据流控制等;,31,ActiveX控件,桌面用的、基于COM的组件叫做ActiveX控件。所谓ActiveX控件不过是遵从一定的标准、与客户端交互的COM对象而已。是建立在COM标准上的独立的软件元件,提供给用户应用接口,发送相应的事件,开发者则可以截取这些事件,执行相应的功能。ActiveX控件开发端和使用端是完全独立的,可以用Delphi、VB等各种语言来开发,又可以用于不同语言、不同开发平台、不同的系统环境中。一个或多个ActiveX控件会保存在一个动态链接库中,但它是一种特殊的动态链接库,其扩展名是OCX。,32,PME 模型:Property: 属性Method:方法Event: 事件,ActiveX控件组成成员:属性,方法以及事件,P:属性 是用来描述和反映对象特征的参数,用来保存对象的数据M:方法是控件内部可调用的用以完成特定操作的过程或函数E:事件是预先定义的,对象能识别的动作。,ActiveX控件的组成PME模型,33,ActiveX控件示例,事件:Click,DblClick,MouseDown.属性:List(Map X, MapObjects ,ArcObjects) ,Visiable方法:AddItem,Refresh,Clear,ListBox,ListBox 控件显示项目列表,从其中可以选择一项或多项。如果项目总数超过了可显示的项目数,就自动在 ListBox 控件上添加滚动条。,34,ActiveX与ActiveX控件的区别,ActiveX不等同于ActiveX控件。ActiveX是一个很宽的技术家族的标识。ActiveX控件只是那个家族的一个特定产品。,35,3.理解GIS组件,GIS 组件:是指基于某种组件对象平台,以具有标准通信接口的、允许跨语言应用的组件形式提供的GIS 软件功能模块。控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的 “积木”搭建起来,就构成应用系统。组件如同汽车的各种总成,一堆各式各样的组件,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的组件搭建起来,就构成应用系统。,36,组件式GIS,组件式GIS: 是由一系列可拆分、可协作、可裁剪的GIS 组件构成的具有高度伸缩性的GIS软件平台。如SuperMap DeskPro。组件式GIS基本思想:是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,通过可视化的软件开发工具集成起来,形成最终的GIS应用。,37,GIS组件的功能,空间数据获取坐标转换图形编辑数据存储数据查询数据分析制图表示等等,38,GIS组件特点,开发人员可以选用自己熟悉的开发语言和工具开发容易灵活搭建用户界面便于与其它系统无缝集成应用于各个领域,39,选用自己熟悉的开发语言和工具,40,开发容易,GIS二次开发语言,传统的GIS二次开发语言COM组件式的开发,41,灵活搭建用户界面,42,便于与其它系统无缝集成,43,高度的伸缩性,组件式GIS 一般都提供绝大部分GIS 功能,每一个用户可以根据自己的需要选择使用这些功能,可以开发功能强大而完备的GIS 应用系统,也可以选择其中部分组件开发中、小型应用系统。用组件式GIS,您完全可以开发从个人旅游指南到国家级的大型应用系统,具有高度的伸缩性。,44,良好的扩展性,组件式GIS 主要完成GIS 相关的功能,当前和未来的应用系统通常会综合应用多种技术,GIS 仅仅是其中一部分。由于基于同一规范的各种组件可以无缝集成,您可以使用其他各种专业组件与GIS 组件协同实现应用系统的功能。,45,更高的性能价格比,由于组件式GIS 灵活的可裁剪性,用户可以根据应用需求仅选择购买必要的组件,以获得更高的性能价格比。,46,应用于各个领域,土地管理矿产管理(煤矿管理)林业管理海洋管理水资源管理 ,SuperMapObjects,道路交通房产规划电信电力设施管理数字城市城市绿化,城市管理,统计人口公安消防农业水利工业控制 ,社会经济,环境保护地质勘探测绘军事管理旅游 ,资源管理,其它领域,47,组件式GIS应用及评价,软件的构件化已成为软件技术发展的潮流。ActiveX构件化的GIS软件系统将对GIS的体系结构和GIS将来的应用前景产生深远影响。,48,组件GIS的不足,与专业的GIS客户端软件相比,组件技术效率上的相对低下,这在访问超大空间数据(如大数据量的遥感图象)的时候表现得尤为明显;支持的空间数据量有限;有些组件不一定具有原GIS软件的全部功能。于是对于特殊领域,它就显得无能为力;,49,GIS组件开发平台的结构,三级组件结构: 基础组件; 高级通用组件; 行业组件;,50,基础组件,基础组件面向空间数据管理,提供基本的交互过程,并能以灵活的方式与数据库系统连接;如: SuperMap Objects 的核心组件、空间分析组件、布局组件、三维组件、拓扑组件等。,51,高级通用组件,高级通用组件由基础组件构造而成,面向通用功能,简化用户开发过程。如显示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装后,使二次开发更为简单。如一个编辑查询系统,若用基础平台开发,需要编写大量的代码,而利用高级通用组件,只需几句程序就够了。,52,行业性组件,抽象出行业应用的特定算法,固化到组件中,进一步加速开发过程。例:GPS监控。对于GPS应用,除了需要地图显示、信息查询等一般的GIS功能外,还需要特定的应用功能,如动态目标显示、目标锁定、轨迹显示等。这些GPS行业性应用功能组件被封装起来后,开发者的工作就可简化为设置显示目标的图例、轨迹显示的颜色、锁定的目标,以及调用、接受数据的方法等。,53,GIS组件产品,MapX: MapInfo, MapInfo公司MapObjects:MO,ArcEngine,ESRI美国环境系统研究所ArcObjects:AO,arcgis,ESRI美国环境系统研究所SuperMap Object:SO, SuperMap,北京超图MapEngine:北京朝夕科技,54,MapObjects以及MapX,55,本章小结,GIS的三种开发模式基本概念:类与对象,控件对象的属性、方法、事件什么是组件式GIS,其功能及特点组件GIS产品,56,作业,1.GIS的三种开发模式? 2 什么是GIS组件,其功能及特点?3 GIS组件产品有哪些?,57,本讲结束 谢谢!,