基于AJAX技术的WebGis系统实践 (1. 快速入门)

一.   简介. 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 到底是什么 .
 
三.   基于.NETAjax框架 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, 可以到官方网站下载得到 :
上面有很多入门 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 系统正是在这些新兴技术的支撑下才得以发展 .
 
 
 
参考文献
[2]: Ajax 开发精要 柯自聪 .
[3]: Ajax 快速入门和项目实践 (.NET)
[3]: Ajax In Action
[4]: Javascript 权威指南 .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值