浅析WebGIS
浅析WebGIS
摘要:随着网络的发展,利用Web公布信息越来越普及化。而地理信息系统(GIS)与网络的结合就产生了万维网地理信息系统(WebGIS),它引起了地理信息公布的新的变革,对实现GIS信息的共享提供了技术保障。本文阐述了WebGIS的基本概念,说明了WebGIS的体系结构,着重讨论了WebGIS基本的构建方式,叙述了WebGIS的展望。
关键词:GIS WebGIS 构造方式
1 GIS和WebGIS
1.1 地理信息系统(GIS)
地理信息系统即Geographic Information Science(GIS)是由美国学者Goodchild于1992年提出的。它是一门是综合了诸多学科与技术,如制图学、測量学、測地学、摄影測绘学、地理学、计算科学和远程传感技术、计算机技术而形成的一个复杂的计算机系统,它应该提供一组功能丰富而强大的工具来为特定目的而採集、传输、存取和回显现实世界中的空间信息[2]。
地理信息作为实体本身知识的载体,反映了地理系统复杂的变化规律,主要具有下面特征[3]:
[1]空间分布性。地理信息的本质特征是空间上的展布性,以明显的地理參考系统为特征。因此採集、管理、维护和处理这些从区段到全球范围上的不同区域上的数据并没有因果、从属关系,而是分布的、相对独立的和并行的。
[2]时间趋势性。地理系统是随着时间变化而逐渐演变的。不同的地理空间的内部元素和子系统在变化的时间粒度等级上是不一样的。地理数据在时间上的分布可能存在着对应的因果、从属关系,但在某种程度上又可能是独立的。
[3]层次性。地理系统是由一系列的子系统和子系统的子系统所构成的层次性系统,因此地理信息必须是多时空尺度,并可由下而上或由上而下反映不同层次的地理实体、现象和过程。
[4]动态性和开放性。因为地理系统是一个开放系统,与外界环境不断发生着物质、能量、信息等方面的交换。因此地理信息处在一个流动的过程中,系统内各元素和子系统间以及外部系统的信息不断的融合、反馈,在平衡与不平衡状态下紊动。
[5]模糊性和精确性。在复杂的地理系统中充满了各种随机因素的扰动,造成了地理信息的模糊性。可是这样的随机性并非毫无目的的,全然随机的,而是在规律性基础上扰动,当达到某种平衡时,这时的地理信息就能够说是精确的。
[6]总体性和综合性。地理系统是一个自然要素、社会要素、经济要素共同作用的典型的复杂系统。
1.2 WebGIS
WebGIS可简单定义为基于Web环境的GIS。伴随着世界的信息化的发展,也为了解决传统GIS的问题,以及地理信息系统在Internet以及Intranet上的应用以其巨大的潜力和优势,WebGIS受到了越来越多的关注。
基于Web的GIS具有下面长处:首先WebGIS是一个开放系统。注重数据共享、软件重用、跨平台执行和易于集成等。其次,WebGIS适合在万维网环境中执行。将GIS软件与Webserver集成,通过普通浏览器,用户能够在不论什么地方操纵网络GIS,享用地理空间信息服务,从而将GIS扩展成为公众服务系统;同一时候拓宽地图出版渠道,减少数据散发成本,提高地理数据共享程度。最后,WebGIS支持数据分布(data distribution)和计算分布(distributed processing)。GISserver为局域和远程用户提供GIS服务。通过互操作技术,一个GIS处理过程可由多个GISserver协调完毕,它们共享分布的数据对象,在多个不同的平台上协同执行,最大限度地利用网络资源[4]。
1.3 WebGIS的优越性
与传统的GIS相比較,WebGIS具有下面几个方面的长处[5]:
[1]有利于信息共享。用户能够在不论什么时间和地点对server进行訪问,扩大了数据的使用范围和利用效率;
[2]信息实时性。用户能够通过浏览器实时地訪问最新的数据;
[3]平台无关性。不管client/server是何种机器,用户都能够对WebGISserver进行訪问,实现远程异构数据的共享;
[4]系统成本减少。WebGIS利用通用的浏览器(有的还须要一些免费的插件)进行信息公布,这样就减少了用户的经济负担,同一时候也使得client不须要维护,减少了系统的维护费用。
2 WebGIS体系结构与构造方式
2.1 WebGIS的体系结构
WebGIS的体系结构和传统的GIS的集中模式不同,它是客户机/server(C/S)模式,採用分布式结构。因为HTTP协议採用基于C/S的请求/应答机制,即由client向server发送请求,server对请求进行处理后,将结果返回client,具有较强的用户交互能力,能够传输并在浏览器上显示各种数据,而GIS中的信息主要是以图形、图像方式表现的空间数据,用户通过交互操作,对空间数据进行浏览、查询、分析等。这些特点,使得人们全然能够利用Web来寻找他们所须要的空间数据,而且进行各种操作。而且随着Internet的普及,这样的模式正在被基于Web的B/S模式代替。WebGIS的体系结构有两种,即两层结构,三层结构。
图1:WebGIS技术框架
2.1.1 两层结构
两层结构:即通常意义上的“胖client”。其应用系统的开发主要集中在client软件的开发,client通常要完毕GIS的数据处理、编辑、分析和输出等功能而server则主要是对数据进行管理和存储。
SHAPE /* MERGEFORMAT
客 户 端 |
服 务 器 |
发送请求 返回操作结果 |
图2:两层结构模型
2.1.2 三层结构
因为两层结构在应用中存在一定的问题,即系统的灵活性较差,且用户在使用时必需要安装client软件等。为了解决两层结构中存在的问题,有关专家又提出了3层结构的概念。3层结构的特点是用户界面与应用逻辑位于不同的平台上,而且应用逻辑被全部的用户所共享,这是3层结构与两层结构之间的最大的差别t32。该结构由3个部分组成:系统界面的实现层、中间层和数据库server层。其模型如图3所看到的:
SHAPE
/* MERGEFORMAT
Web应用server |
浏览器1 |
GIS数据库server |
浏览器2 |
浏览器3 |
client |
应用server |
数据库server |
图三:三层结构
WebGIS的client是通过标准的Web浏览器来与用户进行交互,向Web应用服务器发出请求,解释Webserver返回的数据并对其进行显示;中间层是Web服务器,Webserver接受浏览器传来的请求,同一时候对请求情况进行预处理,格请求信息转换成数据库可以接受的形式(SQL),再把它们送到数据库服务器;数据库server接受到查询请求后运行对应的操作,并招结果集返回给Web应用server。Web应用服务器对结果集进行GIS空间分挤处理并转换成浏览器可以接受的形式(HTML)后送给Webserver,员后Web服务器把包含信息的HTML文档返回给Web浏览器。使用3层结构开发应用系统具有非常多长处,整个系统被分为不同的逻辑块,层次非常清晰,有利于提高开发效率。因为开发和管理的工作向服务器方转移,使“肥client”变成为较“瘦client”,同一时候使得分布的数据处理成为可能,并且可以非常方便池对系统进行管理和维护。
2.2 WebGIS的构架方式
主要是下面五种构架方法:
[1]CGI(Common Gateway Interface)法:即通过网关技术方法;
[2]server应用程序接口(Server API)法:;
[3]插件(Plug-ins)法:运用程序插件方法;
[4]ActiveX法:对象技术方法;
[5]Java Applet法:Java虚拟机以及Java小程序;
以下我们对其一一作具体介绍:
2.2.1 CGI(Common Gateway Interface)法
CGI(Common Gateway Interface)公共网关接口,是应用软件和Webserver之间的接口标准。因为超文本标识语言html(Hyper Text Markup Language)不能直接支持矢量的GIS数据,因此Web浏览器不能直接与GISserver程序进行通讯,须要有媒介连接Web浏览器、Webserver和GISserver。通用的媒介有公共网关接口CGI。它们接受用户的话入,将其解析为GIS程序能使用的变量參数;使得Webserver能在GISserver上执行;解释GISserver产生结果,并将结果送回到客户机浏览器。基于server端的互联网地理信息须要GIS程序以GISserver的形式在后台执行。GISserver通过CGI与Webserver相连。
基于CGI的WebGIS是利用外部的CGI程序通过环境变量、命令行參数、标准输入镜出与Webserver和GIS数据库server进行通信,并传递有关參数和操作结果。其结构如图四所看到的:
图四:CGI构架技术
基于CGI的WebGIS的长处是:系统全部的操作都由server来完毕,因此,client非常小;操作结果是以GIF或JPEG图像,因此客户机端与平台无关。
基于CGI的互联网地理信息系统的劣势主要有一下几个方面:
[1]添加了网络传输的负担。因为用户的每一步操作,都须要将请求通过网络传给GISserver;GISserver将操作结果形成新的栅格图像,再通过网络返回给用户。因而网络的传输量大大添加了。
[2]server的负担重。全部的操作都必须由GISserver解释运行,server的负担非常重;信息(用户的请求和GISserver返回的图像)通过CGI脚本在浏览器和GISserver之间传输,势必影响信息的传输速度。
[3]同步多请求问题。因为CGI脚本处理全部来自Web浏览器的输入和解释GISserver的全部输出。对于每个客户机的请求,都要又一次启动一个新的服务进程。当有多用户同一时候发出请求时,系统的功能将受到影响。
[4]静态图像。在浏览器上显示的是静态图像,因而用户即不能漫游、缩放,又不能通过几何图形如点、线、面来选择显示其关心的地物。
[5]用户界面的功能受Web浏览器的限制,影响GIS资源的有效使用。
2.2.2 server应用程序接口(Server API)法
Server API的基本设计思想是利用动态连接库DLL来提高Server程序的执行速度。Server API和CGI不同,CGI程序是能够独立执行的程序,而S2rverAN要依附于特定的Webserver,如Microsoft API依附于HS(Internet Information Server),仅仅能在Windows平台上执行,其可移植性较差。在ISAPI下建立的应用程序是以动态连接库的形式存在;而CGI的应用程序一般都是可执行程序。可是基于Server AN的动态连接库模块启动后会一直处于执行状态,而不像CGI那样每次都要又一次启动,其速度较CGI快得多。
基于Server API的WebGIS的长处是具有较高的执行速度和效率。其缺点是:因为其DLL和server相关,程序的移植较为困难;系统的维护和管理较为复杂。
2.2.3 图五:server应用程序接口(Server API)法
2.2.4 插件(Plug-ins)法
Plug-In是一种接入浏览器程序的动态链接库(DLL),它採用了DLL方式,能够非常好地解决其与浏览器程序间的相互调用问题。这是一种側重客户方的策略,这样的方法的基本思想是把server中的部分功能转移到浏览器中去执行,这部分功能被设计成能与网络浏览器交换信息的专门GIS软件,称为GIS插件。这样的GIS插件不但能够添加网络浏览器处理地理空间数据的能力,还使人们能更高速的获取地理数据,从而降低网络server的信息流量,提高server的反应速度。
GIS Plug-In是在浏览器上扩充Web浏览器的可运行的GIS软件。GIS P1ug-In的主要作用是使Web浏览器支持处理无缝GIS数据,并为Web浏览器与GIS数据之间的通讯提供条件。GIS P1ug-In直接处理来自server的GIS矢量数据。同一时候,GIS Plug-In能够生成自己的数据,以供Web浏览器或其他P1ug-In显示使用。P1ug-In必须安装在客户机,然后才干使用。
基于Plug-in的互联网地理信息系统的优势:
[1]无缝支持与GIS数据的连接。因为对每一种数据源,都须要有对应的GIS Plug-in;因而GIS Plug-in能无缝支持与GIS数据的连接。
[2]GIS操作速度快。全部的GIS操作都是在本地由GIS Plug-in完毕,因此执行的速度快。
[3]server和网络传输的负担轻。server仅需提供GIS数据服务,网络也仅仅需将GIS数据一次性传输。server的任务非常少,网络传输的负担轻。
基于Plug-in的互联网地理信息系统的劣势:
[1]GIS Plug-in与平台相关。对同一GIS数据,不同的操作系统如对UNIX,Windows,Macintosh而言,须要有各自不同的GIS Plug-in在其上使用。对于不同的Web浏览器,相同须要用相相应的GIS Plug-in。
[2]GIS Plug-in与GIS数据类型相关。对GIS用户而言,使用的GIS数据类型是多种多样的,如Arc Info, MapInfo, Atlas IS等GIS数据格式。对于不同的GIS数据类型,须要有对应的GIS Plug-in来支持。
[3]须要事先安装。用户如想使用,必须下载安装GIS Plug-in程序。假设用户准备使用多种GIS数据类型,必须安装多个GIS Plug-in程序。 GIS Plug-in程序在客户机上的数量增多,势必对管理带来压力。同一时候GIS Plug-in程序占有客户机磁盘空间。
[4]更新困难。当GIS Plug-in程序提供者已经将GIS Plug-in升级了,须通告用户进行软件升级。升级时,须要又一次下载安装。
[5]使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限。
图六:插件(Plug-ins)法
2.2.5 ActiveX法
ActiveX是Microsoft为适应互联网而发展的标准。 ActiveX是建立在OLE(Object Linking and Embedding)标准之上,为扩展Microsoft Web浏览器Internet Explorer功能而提供的公共框架。它可将一个巨大的GIS软件系统分解成相对独立的构件,通过构件技术和OLE、SDE(空间数据库引擎)等来实现WebGIS。ActiveX技术使Web页面成为一种动态的、跳跃的页面,是现今较为流行的一种实现方法。同一时候,能够用VB6cript或JavaScript脚本语言来操作ActiveX控件。ActiveX控件是用于完毕详细任务和信息通讯的软件模块。GIS ActiveX控件用于处理GIS数据和完毕GIS分析。
ActiveX控件和Plug-In很类似,是为了扩展Web浏览器的动态模块。所不同的是,ActiveX能被支持OLE标准的不论什么程序语言或应用系统所使用。相反,Plug-In仅仅能在某一详细的浏览器中使用。
基于GIS ActiveX控件的WebGIS是依赖GIS ActiveX来完毕GIS数据的处理和显示。GIS ActiveX控件与Web浏览器灵活无缝结合在一起。
基于GIS ActiveX控件的WebGIS的长处是:数据交换由Webserver来完毕,有利于实现开放式的GIS系统;ActiveX能被支持OLE标准的不论什么程序语言或应用系统所使用。
其缺点是:
[1]须要下载。占用客户机端机器的磁盘空间。
[2]与平台相关。对不同的平台,必须提供不同的GIS ActiveX控件。
[3]与浏览器相关。GIS ActiveX控件最初仅仅使用于Microsoft Web浏览器。在其他浏览器使用时,须添加特殊的Plug-in予以支持。
[4]使用已有的GIS操作分析资源的能力弱,处理大型的GIS分析能力有限。
图七:ActiveX法
2.2.6 Java Applet法
Java是一种面向对象的语言,它具有平台独立性、分布性、动态性可移植性等长处,除此之外,Java语言还支网络、多线程等特性,其可靠性和安全性使其成为因特网上重要的编程语言。眼下的主要浏览器如Internet Explorer和Netscape Communicator都支持
Java写的程序。
Java Applet是由Java开发的应用程序,与web浏览器结合在一起,用来扩展浏览器的功能,它能完毕GIS数据解释和GIS分析功能。
基于Java Applet控件的WebGIS的长处是:
[1]体系结构中立,与平台和操作系统无关。在具有Java虚拟机的Web浏览器上执行。写一次,可到处执行。
[2]动态执行,无须在用户端预先安装。因为GIS Java Applet是在执行时从Webserver动态下载的,所以当server端的GIS Java Applet更新后,客户机端总是能够使用最新的版本号。
[3]GIS操作速度快。全部的GIS操作都是在本地由GIS Java Applet完毕,因此执行的速度快。
[4]server和网络传输的负担轻。server仅需提供GIS数据服务,网络也仅仅需将GIS数据一次性传输。server的负担非常小,网络传输的负担轻。
其缺点是:处理大型的GIS分析能力比較弱;数据的存储能力和网络资源的使用能力有限。
图八:Java Applet法
3 WebGIS展望
地理信息系统与互联网的结合形成万维网地理信息系统(Web GIS)是GIS扩展和发展完好的一项新技术。以上介绍的万维网地理信息系统(web GIS)软件不管是採用server应用程序接口方法(Server API)、插入法(Plug-Ins)、Java互联网编程语言、ActiveX技术,或是CGI(Common Gateway Interface)方法等,都具有该种技术方法的优势和不足。怎样使GIS数据信息和GIS系统本身进入干家万户,是GIS软件界面临的挑战。
空间基础信息是描写叙述关于人类赖以生存的地球的昨天、今天和明天的重要信息.对社会持续发展起着重要作用。万维网地理信息系统的软件的出现和逐步成熟,使我们看到数
字地球相信息社会的曙光。
參考文献:
[1]毕方明,浅析基于Web的地理信息系统GIS--WebGIS系统,现代计算机,第123期,2001;
[2]王福豹等,基于Web的地理信息系统,计算机运用研究,第四期,32-34,1999;
[3]赵霈生等,GIS与WebGIS简述;
[4]孔云峰等,基于万维网的地理信息系统集成研究,遥感学报,1998.5
[5]徐爱俊,WebGIS理论与实现方法浅析,城市勘測,8--12,2003;
浅析WebGIS的更多相关文章
- SQL Server on Linux 理由浅析
SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...
- 【深入浅出jQuery】源码浅析--整体架构
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
- 高性能IO模型浅析
高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking ...
- netty5 HTTP协议栈浅析与实践
一.说在前面的话 前段时间,工作上需要做一个针对视频质量的统计分析系统,各端(PC端.移动端和 WEB端)将视频质量数据放在一个 HTTP 请求中上报到服务器,服务器对数据进行解析.分拣后从不同的 ...
- (一)开篇—杂谈WebGIS
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.前言 我相信大家对百度地图,谷歌地图等相关应用已经是非常熟悉了.通过 ...
- WebGIS中等值面展示的相关方案简析
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 等值面是气象.环保等相关项目上常用到的效果展示.在传统的CS项 ...
- WebGIS中等值线前端生成绘制简析
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 等值线是GIS制图中常见的功能,一般有两种思路:一种是先进行插 ...
- 以项目谈WebGIS中Web制图的设计和实现
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景介绍 一般WebGIS项目中,前端展示数据的流程基本是先做数据入 ...
- Jvm 内存浅析 及 GC个人学习总结
从诞生至今,20多年过去,Java至今仍是使用最为广泛的语言.这仰赖于Java提供的各种技术和特性,让开发人员能优雅的编写高效的程序.今天我们就来说说Java的一项基本但非常重要的技术内存管理 了解C ...
随机推荐
- ubuntu下的Samba配置:使每个用户可以用自己的用户名和密码登录自己的home目录
http://blog.csdn.net/fly_qj/article/details/21744797 1.先要安装Samba sudo apt-get install samba openssh- ...
- 【Android开发经验】LayoutInflater—— 你可能对它并不了解甚至错误使用
今天,看到了一篇文章讲LayoutInflater的使用方法.瞬间感觉自己对这个类确实不够了解,于是简单的看了下LayoutInflater类的源码.对这个类有了新的认识. 首先.LayoutInfl ...
- 如何把UIView转成UIImage,解决模糊失真问题
最近工作中,遇到一个需求,需要把一个UIView对象转成UIImage对象显示.经过网络搜索,找到如下答案: ? 1 2 3 4 5 6 7 8 -(UIImage*)convertViewToIma ...
- cocos2d-x结合cocosbuilder,不同屏幕适配小结
这个问题搞了好几天才解决,在此总结一下: 首先约定只使用一套图片资源同时应用于iphon4和iphon5(测试过在ipad下也能显示正常), 这里我们将需要全屏显示的背景制作为iphon5的尺寸即:1 ...
- Unity 4.6 uGUI的点击事件
因为Unity 4.6刚刚发布,自带的uGUI功能的相关资料还不是很完善,今天刚装的Unity 4.6,想看一下uGUI是否好用,那么开始就今天的学习吧啊! 1,新建一个空的工程.
- 自定义视图控制器切换(iOS)
在iOS开发过程中,通常我们会使用UINavigationController,UITabbarController等苹果提供的视图控制器来切换我们的视图.在iOS5之前,如果要自定义容器视图控制器很 ...
- webapi单元测试时出现的ConfigurationManager.ConnectionStrings为空错误
这个是读取配置文件没读到的问题,解决方法很简单,把webapi的配置文件复制到单元测试项目中,并把名字改为App.config即可. 同时 ,推荐使用Unit Test Genertor来做测试,这个 ...
- SQL日期格式转换(经常用又经常忘记的东西)转载自http://www.cnblogs.com/wangyuelang0526/archive/2012/06/06/2538224.html
Select CONVERT(varchar(100), GETDATE(), 8):14:53:14Select CONVERT(varchar(100), GETDATE(), 9): 06 6 ...
- 使用Toad导入导出dmp数据
进入Toad,选择Database->Import->Import Utility Wizard(导入则选择:Export->Export Utility Wizard与导入类似故不 ...
- pl sql练习(1)
编写函数接受参数并返回字符串:Hello $var.然后赋值给绑定变量并打印: create or replace function hello_function ( pv_whom varchar2 ...