地理信息系统原理(高勇)15 gis软件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

北京大学遥感与地理信息系统研究所GIS软件GIS软件体系结构桌面GIS网络GISGIS软件二次开发方法WebGISGIS软件的发展七十年代以前GIS软件只是简单的由一系列计算机例程组成,有经验的程序员可以利用它们构建一个可运行的GIS系统每个GIS系统在功能上互不相同,需要大量资源创建一个可工作的系统七十年代末和八十年代初命令行:用户依靠输入指令与GIS软件交互,完成制图和查询统计等工作GIS软件包实际上是空间操作算子或命令的工具箱,应用到一个数据集上产生另一个数据集八十年代末图形用户界面与软件定制能力应用于GIS基于窗体的菜单驱动的GIS,并具备可定制能力为特定领域的最终用户构建专用的应用系统二十一世纪Web服务与分布式GIS当前GIS软件的基本特征菜单驱动可定制能力可以在Web上分布GIS软件体系结构三层结构用户界面——表现层用户与图形用户界面(GUI)交互GUI是集成的菜单、工具条及其它控件的集合,它提供了对GIS工具的操作GIS工具集——业务逻辑层定义了GIS软件用于处理数据的功能和函数数据管理系统——数据服务层数据存储在由数据管理软件维护的文件或数据库中实现模式desktopGISclient-serverGIScentralizeddesktopGIScentralizedserverGIS用户界面GIS工具集数据管理数据表现层业务逻辑层数据服务层DestopGIS体系结构最简单的模式单用户三个软件层以桌面GIS软件包的形式安装在一台PC上变种数据文件由集中式文件服务器(PC)管理但数据服务功能仍然是桌面GIS的一部分所有文件访问通过LAN网络实现文件PC文件PC文件服务器PCClient-ServerGIS体系结构多用户三个软件层可以安装在不同的计算机上,提高灵活性和性能用户与桌面GIS系统交互桌面系统实现所有业务逻辑数据和数据管理软件安装在另一台通过网络连接的计算机上ThickClient数据服务器PCDBMS桌面GIS客户端CentralizedDesktopGIS体系结构GUI和业务逻辑部署在中心服务器上,称为应用服务器层或中间层应用服务层由桌面GIS包实现应用服务层需要同时安装应用服务器软件数据由数据服务器管理用户在远程PC上通过LAN或WAN访问ThinClient数据服务器PCDBMS瘦客户应用服务平台GIS桌面GIS+应用服务器CentralizedServerGIS体系结构业务逻辑部署在真正的应用服务层,作为中间层客户端可以是基于PC、浏览器或特定设备的胖客户或瘦客户客户端与应用服务层通过LAN、WAN或Internet连接数据服务器PCDBMS客户端GISServerBrowserDevice应用服务器Desktop和InternetGIS特征DesktopGISInternetGIS客户端规模胖瘦客户端平台应用程序浏览器服务器尺寸瘦/胖胖服务器平台Windows/UnixWindows/Unix组件标准COM为主Java为主网络局域网/广域网Internet桌面软件GIS工具集数据服务器数据DesktopGIS浏览器应用服务器数据服务器数据InternetGIS构建GIS软件系统GIS软件体系结构的核心部分用户界面、工具、数据管理器、数据模型和定制环境现代的GIS软件系统的软件组件构成终端用户应用一组菜单驱动的用户界面,实现主要的系统功能(数据定位、地图生成、地址编码等)空间分析工具构成软件主要功能和性能的核心引擎编辑、转换、显示、分析、输出和定制数据访问组件相对底层的组件,存储和管理对空间数据的访问GIS应用软件的开发方式通过购买相应的GIS软件或系统,在本地区或本领域内部署实施购买GIS平台软件进行二次开发、购买完整的软件产品、购买完整的GIS系统、购买GIS服务请软件开发商来开发承包开发、合作开发由组织内部人员自己开发实施方案完全自主开发购买二次开发平台开发购买完整软件购买完整系统购买服务承包开发合作开发对提供者依赖性低低高很高很高很高中开发周期长长-中长短很短很短长-中长长-中长初始费用低中等中等高高高中等人力费用高中等低低很低低中等风险和不确定性高较低低低中等高中等灵活性完全可以完全可以中等中等不定高完全可以对用户技术要求很高高中等中等很低中等高现有资源的利用高高中等低很低低中等-高GIS软件定制GIS软件定制是为创建面向特定目的应用而修改GIS软件的过程从GUI中删除不需要的控件,如菜单选项或按钮为核心软件添加支持分析、制图、管理等复杂功能要实现定制需要满足的条件GIS软件必须提供其数据模型的总体描述并暴露接口来使用、修改和补充现有的功能使用开放的、符合工业标准的可视化开发环境支持软件定制GIS厂商必须暴露其软件包的对象模型和函数的细节可以通过创建并编写一系列应用编程接口(API)来实现这些接口允许GIS软件的功能函数可以在一个可视化开发环境的程序设计工具中被调用组件对象模型ComponentObjectModel(COM);.Net组件JavaBean;EJB公共对象请求代理体系结构CommonObjectRequestBrokerArchitecture,CORBAGIS二次开发GIS应用系统的两个核心,决定了GIS应用软件开发方式的选择通用GIS功能领域定制利用GIS二次开发平台进行应用系统的二次开发二次开发平台(组件或应用编程接口)提供了通用GIS功能的支持,可以在应用系统中直接使用二次开发平台可以嵌入到其他系统中,具有更好的可复用性、扩展性和灵活性,具有较高的定制能力GIS二次开发方法,特别是基于GIS组件的二次开发方法,成为GIS应用开发的主流方式GIS二次开发的主要途径宏语言方式脚本语言方式函数调用方式组件方式GIS二次开发——宏语言方式(1)宏宏是一种解释性编程语言宏程序是一连串的指令或函数的组合,可以让使用者将一些常用的功能自动化GIS宏的优点它是服务于特定的GIS软件系统,可以直接使用GIS软件系统内部指令和函数,完成空间信息和属性信息的综合管理ArcInfoAML宏语言AML(ArcMacroLanguage)是内嵌于ArcInfo内部的解释型宏语言,适用于任何ArcInfo环境(Unix或Windows等)AML命令:将单一功能的ArcInfo命令组织成解决复杂问题的程序AML菜单:将AML命令集成到简单易用的用户图形界面AML文件一般包括5个部分:ArcInfo命令、指示符、函数、变量和注释GIS二次开发——宏语言方式(2)基于VBA的GIS二次开发VBAVisualBasicforApplications,可以认为是VisualBasic的子集它是一种通用的自动化语言,可以使常用的程序自动化利用它生成嵌入在应用程序内的宏,可以创建自定义的解决方案ArcMap中的VBA开发在ArcMap中编写VB宏,将VB函数和ArcMap扩展对象库集成可以扩展ArcMap的菜单、工具条等,并完成用户的特定需求两种方法直接编写VBA宏创建UIControl并在其事件中编写代码GIS二次开发——脚本语言方式(1)脚本语言脚本一种纯文本保存的程序,脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等脚本语言相对一般程序开发来说比较接近自然语言,可以不经编译而是解释执行,利于快速开发或一些轻量的控制GIS中的脚本语言一些GIS系统中,也提供了嵌入的脚本语言,通过编写脚本,完成用户定制的功能,实现二次开发利用这些脚本语言,以原GIS工具软件为开发平台,开发出自己的针对不同应用对象的应用程序省时省力,系统的稳定性和可靠性高但难以开发复杂的应用模型,且系统结构松散、系统显得有些臃肿,操作效率和系统功能利用效率较低GIS中代表性的脚本语言MapInfo的MapBasicArcView的AvenueArcGIS9中的VBScript、JavaScript和PythonGIS二次开发——脚本语言方式(2)MapInfo的MapBasicMapBasic一种类Basic语言,能够扩展MapInfo功能,并与其他应用软件集成MapBasic编辑出的程序可以在MapInfoProfessional或MapInfoRuntime上运行ArcView的AvenueAvenue是ArcView内置的面向对象的专用程序设计脚本语言包括了ArcView系统中所有可操作的文档和其它要素几乎所有的ArcView操作都可以通过Avenue脚本语言来实现Windows环境下的ArcView的Avenue还提供了通过DLL调用WindowsAPI函数,增强了ArcView应用的二次开发的深度。VB和Avenue成为开发ArcView应用的最佳组合ArcGIS9中的Python支持Python、VBScript、JavaScript和PERL等多种脚本语言Python是一种面向对象的解释性语言,能够提供基本的构建块,也可以用C、C++、Java进行扩展,因此可以用它开发任何类型的程序Python支持AML和Avenue提供的所有功能ESRI使用Python作为文档和支持的主要的脚本语言,目前也成为ESRI大力推广的应用于ArcGIS9.0以上版本的主要的二次开发脚本语言GIS二次开发——函数调用方式基于函数调用的GIS二次开发将各种GIS功能,包装成函数的形式,生成可以被多种程序设计语言共享调研的二进制程序块在应用系统建设时,加载这些二进制程序模块,调用其中的函数,实现相应的GIS功能基于函数调用的GIS二次开发主要使用动态链接库(DLL)技术动态链接库独立在应用系统之外,只在系统运行到适当的位置时才动态加载,使用完后即可释放,因此通过这种方法开发的系统负担较小,独立性好动态链接库可以被多个不同的系统使用,可以方便的嵌入到应用系统中,提高了GIS软件的可复用性应用系统可以独立于原GIS库,其扩展性和集成性都明显优于宏、脚本语言等二次开发方式广泛使用的各种程序设计语言或集成开发环境(如VisualC++、VisualBasic、Delphi等)都可以很好的支持动态链接库的使用典型的基于函数调用的GIS二次开发MapGIS以API函数的形式提供了一系列的GIS二次开发库,可以全面支持GIS应用系统的二次开发GIS二次开发——组件方式(1)组件技术COM/DCOM、.Net组件、CORBA、JavaBean、EJBActiveX控件COM物理实现的一种方式提供一种面向对象、与操作系统无关、与机器平台无关、可以在应用程序之间互相访问对象地机制ActiveX控件开发端和使用端是完全独立的,可以用于不同语言、不同开发平台、不同的系统环境中.Net组件GIS组件把GIS的功能适当抽象,以组件形式供开发者使用独立灵活,成本低可扩展、可集成程度高同样强大的GIS功能开发简捷基于组件的二次开发是应用最广泛,功能最强大的GIS二次开发方法比较具有代表性的GIS组件ESRIArcObject,MapObject,ArcEngineMapInfoMapXGeoMediaSuperMapObjectGIS二次开发——组件方式(2)ArcObject简称AO,是ESRI公司构建的一系列COM组件集,可以利用ArcObject提供的组件对象来进行应用开发是ArcGIS中的ArcMap、ArcCatalog和ArcScene的开发平台通过ArcObject可完成以下甚至更多的GIS功能空间数据的显示、查询检索、编辑和分析创建各种专题图和统计报表高级的制图和输出功能空间数据管理和维护ArcObject包含若干个ActiveX控件MapControl控

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功