地理信息系统原理高勇15gis软件_第1页
地理信息系统原理高勇15gis软件_第2页
地理信息系统原理高勇15gis软件_第3页
地理信息系统原理高勇15gis软件_第4页
地理信息系统原理高勇15gis软件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GIS软件,GIS软件体系结构 桌面GIS 网络GIS GIS软件二次开发方法 WebGIS,GIS软件的发展,七十年代以前 GIS软件只是简单的由一系列计算机例程组成,有经验的程序员可以利用它们构建一个可运行的GIS系统 每个GIS系统在功能上互不相同,需要大量资源创建一个可工作的系统 七十年代末和八十年代初 命令行:用户依靠输入指令与GIS软件交互,完成制图和查询统计等工作 GIS软件包实际上是空间操作算子或命令的工具箱,应用到一个数据集上产生另一个数据集 八十年代末 图形用户界面与软件定制能力应用于GIS 基于窗体的菜单驱动的GIS,并具备可定制能力 为特定领域的最终用户构建专用的应用系

2、统 二十一世纪 Web服务与分布式GIS 当前GIS软件的基本特征 菜单驱动 可定制能力 可以在Web上分布,GIS软件体系结构,三层结构 用户界面表现层 用户与图形用户界面(GUI)交互 GUI是集成的菜单、工具条及其它控件的集合,它提供了对GIS工具的操作 GIS工具集业务逻辑层 定义了GIS软件用于处理数据的功能和函数 数据管理系统数据服务层 数据存储在由数据管理软件维护的文件或数据库中 实现模式 desktop GIS client-server GIS centralized desktop GIS centralized server GIS,Destop GIS体系结构,最简单的

3、模式 单用户 三个软件层以桌面GIS软件包的形式安装在一台PC上 变种 数据文件由集中式文件服务器(PC)管理 但数据服务功能仍然是桌面GIS的一部分 所有文件访问通过LAN网络实现,Client-Server GIS体系结构,多用户 三个软件层可以安装在不同的计算机上,提高灵活性和性能 用户与桌面GIS系统交互 桌面系统实现所有业务逻辑 数据和数据管理软件安装在另一台通过网络连接的计算机上 Thick Client,Centralized Desktop GIS体系结构,GUI和业务逻辑部署在中心服务器上,称为应用服务器层或中间层 应用服务层由桌面GIS包实现 应用服务层需要同时安装应用服务

4、器软件 数据由数据服务器管理 用户在远程PC上通过LAN或WAN访问 Thin Client,Centralized Server GIS体系结构,业务逻辑部署在真正的应用服务层,作为中间层 客户端可以是基于PC、浏览器或特定设备的胖客户或瘦客户 客户端与应用服务层通过LAN、WAN或Internet连接,Desktop和Internet GIS,构建GIS软件系统,GIS软件体系结构的核心部分 用户界面、工具、数据管理器、数据模型和定制环境 现代的GIS软件系统的软件组件构成 终端用户应用 一组菜单驱动的用户界面,实现主要的系统功能(数据定位、地图生成、地址编码等) 空间分析工具 构成软件主

5、要功能和性能的核心引擎 编辑、转换、显示、分析、输出和定制 数据访问组件 相对底层的组件,存储和管理对空间数据的访问,GIS应用软件的开发方式,通过购买相应的GIS软件或系统,在本地区或本领域内部署实施 购买GIS平台软件进行二次开发、购买完整的软件产品、购买完整的GIS系统、购买GIS服务 请软件开发商来开发 承包开发、合作开发 由组织内部人员自己开发,GIS软件定制,GIS软件定制 是为创建面向特定目的应用而修改GIS软件的过程 从GUI中删除不需要的控件,如菜单选项或按钮 为核心软件添加支持分析、制图、管理等复杂功能 要实现定制需要满足的条件 GIS软件必须提供其数据模型的总体描述 并暴

6、露接口来使用、修改和补充现有的功能 使用开放的、符合工业标准的可视化开发环境支持软件定制 GIS厂商必须暴露其软件包的对象模型和函数的细节 可以通过创建并编写一系列应用编程接口(API)来实现 这些接口允许GIS软件的功能函数可以在一个可视化开发环境的程序设计工具中被调用 组件对象模型 Component Object Model (COM);.Net组件 Java Bean;EJB 公共对象请求代理体系结构 Common Object Request Broker Architecture,CORBA,GIS二次开发,GIS应用系统的两个核心,决定了GIS应用软件开发方式的选择 通用GIS功

7、能 领域定制 利用GIS二次开发平台进行应用系统的二次开发 二次开发平台(组件或应用编程接口)提供了通用GIS功能的支持,可以在应用系统中直接使用 二次开发平台可以嵌入到其他系统中,具有更好的可复用性、扩展性和灵活性,具有较高的定制能力 GIS二次开发方法,特别是基于GIS组件的二次开发方法,成为GIS应用开发的主流方式 GIS二次开发的主要途径 宏语言方式 脚本语言方式 函数调用方式 组件方式,GIS二次开发宏语言方式(1),宏 宏是一种解释性编程语言 宏程序是一连串的指令或函数的组合,可以让使用者将一些常用的功能自动化 GIS宏的优点 它是服务于特定的GIS软件系统,可以直接使用GIS软件

8、系统内部指令和函数,完成空间信息和属性信息的综合管理 ArcInfo AML宏语言 AML(Arc Macro Language)是内嵌于ArcInfo内部的解释型宏语言,适用于任何ArcInfo环境(Unix或Windows等) AML命令:将单一功能的ArcInfo命令组织成解决复杂问题的程序 AML菜单:将AML命令集成到简单易用的用户图形界面 AML文件一般包括5个部分:ArcInfo命令、指示符、函数、变量和注释,GIS二次开发宏语言方式(2),基于VBA的GIS二次开发 VBA Visual Basic for Applications,可以认为是Visual Basic的子集 它

9、是一种通用的自动化语言,可以使常用的程序自动化 利用它生成嵌入在应用程序内的宏,可以创建自定义的解决方案 ArcMap中的VBA开发 在ArcMap中编写VB宏,将VB函数和ArcMap扩展对象库集成 可以扩展ArcMap的菜单、工具条等,并完成用户的特定需求 两种方法 直接编写VBA宏 创建UIControl并在其事件中编写代码,GIS二次开发脚本语言方式(1),脚本语言 脚本一种纯文本保存的程序,脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等 脚本语言相对一般程序开发来说比较接近自然语言,可以不经编译而是解释执行,利于快速开发或一些轻量的控制 GIS

10、中的脚本语言 一些GIS系统中,也提供了嵌入的脚本语言,通过编写脚本,完成用户定制的功能,实现二次开发 利用这些脚本语言,以原GIS 工具软件为开发平台,开发出自己的针对不同应用对象的应用程序 省时省力,系统的稳定性和可靠性高 但难以开发复杂的应用模型,且系统结构松散、系统显得有些臃肿,操作效率和系统功能利用效率较低 GIS中代表性的脚本语言 MapInfo的MapBasic ArcView的Avenue ArcGIS9中的VBScript、JavaScript和Python,GIS二次开发脚本语言方式(2),MapInfo的MapBasic MapBasic一种类Basic语言,能够扩展Ma

11、pInfo功能,并与其他应用软件集成 MapBasic编辑出的程序可以在MapInfo Professional或MapInfo Runtime上运行 ArcView的Avenue Avenue是ArcView内置的面向对象的专用程序设计脚本语言 包括了ArcView系统中所有可操作的文档和其它要素 几乎所有的ArcView操作都可以通过Avenue脚本语言来实现 Windows环境下的ArcView的Avenue还提供了通过DLL调用Windows API函数,增强了ArcView应用的二次开发的深度。VB和Avenue成为开发ArcView应用的最佳组合 ArcGIS 9中的Python

12、支持Python、VBScript、Java Script和PERL等多种脚本语言 Python是一种面向对象的解释性语言,能够提供基本的构建块,也可以用C、C+、Java进行扩展,因此可以用它开发任何类型的程序 Python支持AML和Avenue提供的所有功能 ESRI使用Python作为文档和支持的主要的脚本语言,目前也成为ESRI大力推广的应用于ArcGIS9.0以上版本的主要的二次开发脚本语言,GIS二次开发函数调用方式,基于函数调用的GIS二次开发 将各种GIS功能,包装成函数的形式,生成可以被多种程序设计语言共享调研的二进制程序块 在应用系统建设时,加载这些二进制程序模块,调用其

13、中的函数,实现相应的GIS功能 基于函数调用的GIS二次开发主要使用动态链接库(DLL)技术 动态链接库独立在应用系统之外,只在系统运行到适当的位置时才动态加载,使用完后即可释放,因此通过这种方法开发的系统负担较小,独立性好 动态链接库可以被多个不同的系统使用,可以方便的嵌入到应用系统中,提高了GIS软件的可复用性 应用系统可以独立于原GIS库,其扩展性和集成性都明显优于宏、脚本语言等二次开发方式 广泛使用的各种程序设计语言或集成开发环境(如Visual C+、Visual Basic、Delphi等)都可以很好的支持动态链接库的使用 典型的基于函数调用的GIS二次开发 MapGIS以API函

14、数的形式提供了一系列的GIS二次开发库,可以全面支持GIS应用系统的二次开发,GIS二次开发组件方式(1),组件技术 COM/DCOM、.Net组件、CORBA、JavaBean、EJB ActiveX控件 COM物理实现的一种方式 提供一种面向对象、与操作系统无关、与机器平台无关、可以在应用程序之间互相访问对象地机制 ActiveX控件开发端和使用端是完全独立的,可以用于不同语言、不同开发平台、不同的系统环境中 .Net组件 GIS组件 把GIS的功能适当抽象,以组件形式供开发者使用 独立灵活,成本低 可扩展、可集成程度高 同样强大的GIS功能 开发简捷 基于组件的二次开发是应用最广泛,功能

15、最强大的GIS二次开发方法 比较具有代表性的GIS组件 ESRI ArcObject, MapObject,ArcEngine MapInfo MapX GeoMedia SuperMap Object,GIS二次开发组件方式(2),ArcObject 简称AO,是ESRI公司构建的一系列COM组件集,可以利用ArcObject提供的组件对象来进行应用开发 是ArcGIS中的ArcMap、ArcCatalog和 ArcScene的开发平台 通过ArcObject可完成以下甚至更多的GIS功能 空间数据的显示、查询检索、编辑和分析 创建各种专题图和统计报表 高级的制图和输出功能 空间数据管理和维

16、护 ArcObject包含若干个ActiveX控件 MapControl控件 提供了类似ArcMap中的数据视图的窗口 PageLayoutControl控件 提供了类似ArcMap中的版面视图的窗口,ArcObject对象图,GIS二次开发组件方式(3),ArcEngine ArcGIS 9中新的开发产品,从核心ArcObject中构建 可以创建独立的应用程序或者集成到第三方的软件系统中 功能 读取所有支持的ESRI数据格式 地图制作 ArcGIS级别的绘图 查询和分析 地理编码 简单编辑 开发控件 MapControl PageLayoutControl ToolbarControl TO

17、CCControl ReaderControl SceneControl GlobleControl 若干命令和工具,GIS二次开发组件方式(4),MapObject (MO) 由ESRI提供的一个ActiveX组件 主要功能 可完成许多基础的地图管理、操作、查询、制图和输出功能 但不能执行某些高级功能,如拓扑编辑、高质量地图输出、表面模型或网络分析等高级空间分析 包含一个Map控件和46个对象 地图显示对象 用符号或专题表达显示一张地图,也可加入图像做为背景,在地图上显示动态数据 数据访问对象 可以建立与地图数据的联系,修改属性数据,并从地图元素上获取其属性信息 几何图形对象 支持获取图层中

18、选择元素的几何信息,向图层添加几何要素,在地图中画几何目标而不更新图层 地址匹配对象 支持获取图层上的某个地址,该地址具有街道和地址范围并返回一个位置,也可以查找十字路口的位置和地名 投影对象 支持空间参考坐标系、设置投影参数并进行投影变化等操作,GIS二次开发组件方式(5),MapX MapInfo公司提供的具有地图分析功能的ActiveX控件产品 可以实现MapInfo Professional的绝大部分地图编辑和空间分析功能,SuperMap Objects 是SuperMap GIS系列软件中的组件式GIS开发平台 提供的功能 地图基本操作、编辑与捕捉功能、专题地图制作、拓扑处理与分析

19、、空间分析功能、三维建模与分析、布局排版等 由六组可拆分的组件群组成 核心组件、三维组件、拓扑组件、布局组件、分析组件、辅助开发组件,WebGIS,概念 WebGIS是利用互联网技术(Internet),为地理信息和空间分析知识的存取、处理和传播提供便利的系统 大多数的客户端应用采用了WWW 协议 基本思想是在互联网上提供地理信息, 让用户通过网络可以获得远端地理信息系统中的数据和功能服务 特点 更广泛的客户访问范围 客户端平台独立性 更简单的操作 良好的可扩展性 发展 浏览型服务:B/S 数据分布:分布式多数据源 服务分布:WebService 新的发展趋势:无线、三维,WebGIS的体系结

20、构,三层B/S体系结构 客户端一般为Web浏览器,服务器包括Web服务器,Map服务器,GIS服务器,空间数据库 Web浏览器是用户和WebGIS的交互接口,用来显示地图和实现客户端的在线查询和分析功能 Web服务器响应来自Web浏览器的请求,通过CGI、Servlet等将请求传递给Map服务器,并从Map服务器得到请求结果发还给浏览器 Map服务器将用户请求分配给相应的GIS服务器或空间数据库,并能够实现网络的负载平衡 GIS服务器提供了空间数据的存取、查询、分析、处理等功能 空间数据库是用来存储和管理空间数据,WebGIS的实现技术(1),CGI方式 CGI是一个用于Web服务器和客户端浏

21、览器之间的特定标准,它允许网页用户通过网页的命令来启动一个存在于网页服务器主机的程序(称为CGI程序),并且接收到这个程序的输出结果 利用CGI可以生成图像,然后传递到客户端浏览器 用CGI启动后端的批处理制图软件 CGI启动后端GIS软件,使用进程间通讯实现 Server API方式 Server API类似于CGI,但依附于特定的Web服务器 如Microsoft ISAPI依附于IIS Server API启动后会一直处于运行状态,其速度较CGI快 插件方式 浏览器插件是指能够同浏览器交换信息的软件,通过开发插件以使浏览器支持其特定格式的数据文件 利用浏览器插件,可以将一部分服务器的功能

22、转移到客户端,可以处理和传输矢量格式空间数据 需要在客户端先安装,然后才能使用,给使用造成了不方便,WebGIS的实现技术(2),Java Applet方式 Java Applet能嵌入HTML文件中,被浏览器解释执行 运行时,Applet从服务器下载,不需要进行软件安装 可以实现Applet与服务器程序的直接连接,从而使数据处理操作既可以在服务器上实现,又可以在客户端实现,以实现两端负载的平衡 AxtiveX方式 其基础是DCOM,可以嵌入到HTML文件中,在因特网上运行 只能运行于MS-Windows平台上,并且由于可以进行磁盘操作,其安全性较差 执行速度快,可以用多种语言实现,可以复用原有GIS软件的源代码,提高了软件开发效率 WebService方式 一种基于对象/组件模型的分布式计算技术 基础是XML及基于其上的SOAP 客户端和服务端把请求和数据结果以XML 的形式进行SOAP 包装,以HTTP 等形式进行传送,从而实现相应交互 三种基本角色:服务的提供者、服务的请求者、服务中介(服务注册库) 采用WebService的方式实现的WebGIS有时也称为GeoService,WebGIS数据传输格式,基于栅格的数据格式 WebGIS现在采用最多的是基于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论