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