一. 简介.
WebGis
基于Internet的地理信息系统,我们常称为Web-GIS,这主要是由于大多数的客户端应用采用了WWW协议。随着技术的进步,客户端可能会采用新的应用协议,因此也被认为是Internet GIS 1、WebGIS是Web 技术和GIS技术相结合的产物,是利用Web技术来扩展和完善地理信息系统的一项新技术。 2、由于HTTP协议采用基于C/S的请求/应答机制,具有较强的用户交互能力,可以传输并在浏览器上显示多媒体数据,而GIS中的信息主要是需要以图形、图像方式表现的空间数据,用户通过交互操作,对空间数据进行查询分析。这些特点,使得人们完全可以利用Web来寻找他们所需要的空间数据,并且进行各种操作。 WebGIS是Internet和WWW技术应用于GIS开发的产物,是实现GIS互操作的一条最佳解决途径。从Intemet的任意节点,用户都可以浏览WebGIS站点中的空间数据、制作专题图、进行各种空间信息检索和空间分析。
因此,WebGlS不但具有大部分乃至全部传统GIS软件具有的功能,而且还具有利用Intenet优势的特有功能,即用户不必在自己的本地计算机上安装GIS软件就可以在Intenet上访问远程的GIS数据和应用程序,进行GIS分析,在Intenet上提供交互的地图和数据。
WebGIS
的关键特征是面向对象、分布式和互操作。任何G1S数据和功能都是一个对象,这些对象部署在Intemet的不同服务器上,当需要时进行装配和集成。Intemet上的任何其他系统都能和这些对象进行交换和交互操作。
WebGIS
的基本特征
WebGIS
是集成的全球化的客户/服务器网络系统
WebGIS
应用客户/服务器概念来执行GIS的分析任务。它把任务分为服务器端和客户端两部分,客户可以从服务器请求数据、分析工具或模块,服务器或者执行客户的请求并把结果通过网络送回给客户,或者把数据和分析工具发送给客户供客户端使用。
WebGIS
是交互系统
WebGIS
可使用户在Intenet上操作GIS地图和数据,用Web浏览器(IE、Netscape,etc.)执行部分基本的GIS功能:如zoom(缩放)、Pan(拖动)、Query(查询)和Label(标注),甚至可以执行空间查询:如“离你最近的旅馆或饭店在哪儿”,或者更先进的空间分析:比如缓冲分析和网络分析等。在Web上使用WebGIS就和在本地计算机上使用桌面GIS软件一样。
通过超链接(Hyperlink),WWW提供在Intemet上最自然的交互性。通常用户通过超链接所浏览的Web页面是由WWW开发者组织的静态图形和文本,这些图形大部分是FPEG和GIF格式的文件,因此用户无法操作地图,甚至连像zoom、Pan、Query这样简单的分析功能都无法执行。
WebGIS
是分布式系统 GIS数据和分析工具是独立的组件和模块,WebGIS利用Intemet的这种分布式系统把GIS数据和分析工具部署在网络不同的计算机上,用户可以从网络的任何地方访问这些数据和应用程序,即不需要在本地计算机上安装GIS数据和应用程序,只要把请求发送到服务器,服务器就会把数据和分析工具模块传送给用户,达到Just—in—time的性能。
Intemet
的一个特点就是它可以访问分布式数据库和执行分布式处理,即信息和应用可以部署在跨越整个Intenet的不同计算机上。
WebGIS
是动态系统
由于WebGIS是分布式系统,数据库和应用程序部署在网络的不同计算机上,随时可被管理员更新,对于Intenet上的每个用户来说都将得到最新可用的数据和应用,即只要数据源发生变化,WebGIS将得到更新。和数据源的动态链接将保持数据和软件的现势性。
WebGIS
是跨平台系统
WebGIS
对任何计算机和操作系统都没有限制。只要能访问Intenet,用户就可以访问和使用WebGIS而不必关心用户运行的操作系统是什么。随着Java的发展,未来的WebGIS可以做到“一次编写,到处运行”,使WebGIS的跨平台特性走向更高层次。
WebGIS
能访问Intemet异构环境下的多种GIS数据和功能
此特性是未来WebGIS的发展方向。异构环境下在GIS用户组间访问和共享GIS数据、功能和应用程序,需要很高的互操作性。OGC提出的开放式地理数据互操作规范(OpenGeodata Interoperablity Specificaton)为GIS互操作性提出了基本的规则。其中有很多问题需要解决,例如数据格式的标准、数据交换和访问的标准、OIS分析组件的标准规范等。随着Intemet技术和标准的飞速发展,完全互操作的WebGIS将会成为现实。
WebGIS
是图形化的超媒体信息系统
使用Web上超媒体系统技术,WebGIS通过超媒体热链接可以链接不同的地图页面。例如,用户可以在浏览全国地图时,通过单击地图上的热链接,而进入相应的省地图进行浏览。
另外,WWW为WebGIS提供了集成多媒体信息的能力,把视频、音频、地图、文本等集中到相同的Web页面,极大地丰富了GIS的内容和表现能力。
WebGIS
的基本要求
WebGIS
应当是开放的:webGIS能够共享多种来源、多级尺度(比例尺)、存放在不同地点的地理数据,能够和其他应用软件集成,并通过Java、CORBA、DCOM等技术跨平台协作运行,支持C/S模式等。
WebGIS
能在Intemet环境下运行:WebGIS使用Intenet协议标准,将GIS与Web服务器集成,通过普通浏览器,用户可以在任何地方操纵WebGIS,共享地理空间信息服务,从而将GIS扩展成为公众服务系统。
WebGIS
必须支持数据分布和计算分布:WebGIS服务器为网络用户提供GIS服务:地理数据存取服务、地理数据目录服务、地理信息分析服务和地图显示服务。通过互操作技术,共享分布的数据对象,在多个不同的平台上协同运行,最大限度地利用网络资源。
WebGIS
能在网络上直接查询和存取数据:建立地理时空数据结构标准和操作标准,直接在Intenet上查询数据和存取数据。
WebGIS
的基础技术
空间数据库管理技术
对象—关系数据库技术和面向对象的数据库技术正在逐步成熟起来,成为未来GIS空间数据管理的主要技术。因为关系型数据库管理系统已经相当成熟,商业化的RDBMS不仅支持C/S模式,而且支持数据分布,通过SQL语言和ODBC,几乎所有的GIS软件通过公共标识号都能和其协同运行。
面向对象方法
从面向对象技术的发展来看,它是描述地理问题非常理想的方法。面向对象是一种认识方法。面向对象分析(OOA)、面向对象设计()OD)、面向对 象语言(00L)和面向对象数据管理(OODBM)贯穿整个信息系统的生命周期。面向对象的空间数据库技术正在逐步成熟,空间对象查询语言(SOQL)、空间对象关系分析、面向对象数据库管理、对象化软件技术等,都和GIS密切相关。
客户/服务器模式
客户/服务器的含义非常广泛,数据库技术和分布处理技术都和它密切相关。通过平衡客户/服务器间的数据通信和地理运算,能够利用服务器的高性能处理复杂的关键性业务,并降低网络数据流量:通过规划客户/服务器模式的GIS系统,用户能够最大限度地利用网络上的各种资源。
组件技术
为避免系统重复编码,浪费软件资源,参照制造业成功经验,使用插件(Plug—In)、组件(Activex)和中间件(Middleware)技术组装软件产品:如各软件生产商制作自己最好的组件,其他软件开发人员和系统集成人员,可直接使用该部件提供的功能,无须重新编码,从而扩大了软件开发社会分工,提高了软件生产效率。
分布式计算机平台 即Distributed Computing Platform技术,目前有OMG的CORBA/Java标准和微软的DCOM/ActiveX标准。
另外与WebGIS相关的技术还包括:多媒体数据操作标准ISO SQL/MM、地理数据目录服务技术(Geodata Catalog Service)、数据仓库技术、地理信息高速公路设施等
二. 之路.
Ajax
Ajax
英文全称是
Asynchronous Javascript and XML :
异步
Javascript
和
XML,
是
2005
年
2
月才正式提出的一项综合技术
,
其主要特点是为
Web
开发提供异步的数据传输和交换方式
,
可以在不重载
(Reload)
刷新
(Refresh)
的情况夏与服务器进行数据交换和通信
.
2005
年
2
月
, Adaptive Path
公司的
Jesse James Garrett
在他的
”Ajax : A New Approach to Web Applications”
一文中首次提出了
Ajax
的概念
. Garrett
将一种综合使用
Javascript , XHTML, CSS,DOM, XMLHTTPREQUEST,XML
和
XSTL
的技术称之为
AJAX.
一直以来
, WEB
应用程序的交互效果都不如桌面应用程序
,
比如客户端功能和用户体验效果
,
这点让很多
WEB
应用程序开发人员和用户耿耿于怀
. Garrett
期待
AJAX
能够消除
WEB
应用程序和桌面应用程序在系统人机交互和用户体验方面的差距
,
至少
Google Suggest, Google Maps
等产品已经让人们看到了胜利的曙光
.
其实在
Garrent
的文章发表之前
, AJAX
已经在一些内部的
WEB
系统中得到了应用
, Google
在已将
AJAX
技术应用到包括
Google Suggest, GMAIL
等多个软件产品中
,
只是这个时候
,Ajax
技术还
”
深在深闺不为人知
”,
业界知之甚少
,
原来的
AJAX
有一个冗长的名字
,
异步的
Javascript , css, dom
和
XMLHttpRequest (Asynchronous Javascript +CSS+DOM+XMLHttpRequest). Garrent
则扮演了
”
临门一脚
”
的角色
. Google
所在的这种基于多种
XML (
异步
javascript
和
XML)
的缩写
,
这个形象简短的名字概括了这种技术的特点
.
现在
“AJAX”
这个简短形象的缩写已经风靡全世界
.
Garrent
的文章发表后
,
业界对
AJAX
兴趣浓厚
,
咨询的信件纷至沓来
, Garrent
也专门整理了一份
FAQ,
来解答读者的问题
,
从
Garrent
的文章和
FAQ
中
,
可以完整的看出
AJAX
的轮廓
,
了解
AJAX
到底是什么
.
三.
基于.NET
的Ajax
框架 AjaxPro
AjaxPro
全称为
Ajax.NET Professional
是一个基于
.NET
平台的
ajax
开源框架
,
利用
ajaxpro
可以快速构建
Ajax
应用程序
, ajax
的实现原理和大多数的
Ajax
框架类似如
: Atlas ,
本文重点探讨
ajax
技术的应用
,
至于框架原理部分
,
无需花费过多精力研究
.
查看细节请参照
: http://sunwaywei.cnblogs.com/archive/2006/04/15/375928.html,
和
Michael Schwarz
的
Blog : http://weblogs.asp.net/mschwarz/.
AjaxPro
最新版本为
6.0,
可以到官方网站下载得到
:
http://www.ajaxpro.net.
上面有很多入门
DEMO.
这里我用一个简单的入门事例来描述
ajaxpro
的使用方法
.
1.
配置
Web.config
文件
.
添加如下结点注册
AjaxPro
组件
.
<
system.web
>
<
httpHandlers
>
<
add
verb
=
"POST,GET"path="ajaxpro/*.ashx"type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
</
httpHandlers
>
</
sytem.web
>
2.
将
AjaxPro.DLL
添加到项目引用中
.
并在类名字空间中添加
:
using
AjaxPro;
3.
定义个服务端方法
.
public
class ShowMaps
{
[AjaxMethod()]
public bool AddEntity(string type)
{
return true;
}
}
|
4.
在页面文件的
Page_Load
方法中注册改类
.
protected
void Page_Load(object sender, EventArgs e)
{
Utility.RegisterTypeForAjax(typeof(ShowMaps));
}
|
5
客户端调用
.
if
(Map.MarkInfor.AddMark(_name,mark_x,mark_y).value)
{
window.alert("
插入成功!"
);
}
else
{
window.alert("
请不要重复插入!"
);
}
|
最好使用回调函数方式
,
并发一个线程异步接收服务端数据
,
可以提高通讯效率
,
防止浏览器阻塞
.
6.
使用回调函数
.
ShowMaps(ShowMaps_CallBack);
Function
ShowMaps_CallBack(response)
{
if
(response.value)
{
window.alert("
插入成功!"
);
}
else
{
window.alert("
请不要重复插入!"
);
}
总结.
掌握了上面一些知识
.
就等于拥有了一把快速构架
WebGis
系统的钥匙
. Gis
系统正是在这些新兴技术的支撑下才得以发展
.
参考文献
[1]: http://blog.sina.com.cn/u/4ab600a101000974
[2]: Ajax
开发精要
.
柯自聪
.
[3]: Ajax
快速入门和项目实践
(.NET)
[3]: Ajax In Action
[4]: Javascript
权威指南
.
[5]: http://weblogs.asp.net/mschwarz/.
[6]: http://www.ajaxpro.net/