使用.net Remoting和SuperMap Object设计WebGIS系统
1.前言 WebGIS是Internet技术应用于GIS开发的产物。WebGIS,即互联网地理信息系统,以互联网为环境,以 Web页面作为GIS软件的用户界面,把Internet和GIS技术结合在一起,为各种地理信息应用提供GIS功能。 GIS通过Web功能得以扩展,通过Web发布地图、浏览空间数据,制作专题图,例如大家熟悉的Go2Map、 Google Map、MapBar等等。 随着GIS应用的不断加深和广泛,WebGIS逐渐成为很多GIS工程的首选方案,那么什么是WebGIS, WebGIS的内部机制和架构是什么,WebGIS平台的关键技术等问题也成了很多开发人员关注的问题。也许绝 大多数人不会去实现WebGIS平台,但一项技术“知其然”和“知其所以然”还是有所差别的,因此我们使 用.net Remoting和SuperMap Object设计了一个简单的WebGIS系统,从纵剖面的角度来剖析其WebGIS的内 部结构。本文所涉及到的知识有:组件GIS开发、.net Remoting、ASP.net开发和控件开发、设计模式。 2.WebGIS的基本原理 WebGIS的原理并不复杂,主要流程如图 1所示: (1)首先,设计一个可以交互的Web页(可以应用ASP、PHP、ASP.net、JSP等,商用WebGIS大多选择 除了PHP的其他语言,而开源WebGIS大都选择了PHP),通过此Web页,向Web服务器提交有关GIS服务的请 求; (2)此请求会包含对地图数据的请求,包括查询等,请求会通过Web服务器提交给GIS应用服务器; (3)GIS应用服务器可以使用几种技术,CGI、COM、Java Serverlet或者.net技术、Web Service技术 ,通过这些组件包装已有的GIS软件,获取客户端的请求,将用户需求转化为具体的操作,返回需求的数 据(一般是一个地图图片或者查询的数据集),这个过程称为地图的Render,实际上也是最为耗时的操作 ; (4)Web服务器获取了GIS应用服务器返回的图片,然后作为一个Web页返回给客户。 图 1 WebGIS的基本架构 这就是WebGIS的基本原理,另外一类基于客户端插件,如ActiveX或者Applet的WebGIS系统,差别在于 GIS服务器不生成图片,而返回矢量数据集。这样,可以看出,WebGIS的关键是设计GIS应用服务器,该服 务器的性能和效率很大程度上决定了WebGIS的性能。 3. WebGIS的设计 接着我们来设计一个自己的WebGIS系统。我们的需求非常简单,可以将一个地图以固定的分辨率显示 在Web浏览器,可以放大、缩小和移动。这个功能虽然简单但五脏俱全,大概可以一窥WebGIS的基本原理 。 我们选择使用.net技术,首先需要对系统进行划分,Web开发使用ASP.net的Web Control来封装一个简 单的控件,ASP.net的Web页通过此控件来显示地图,控件包括几个主要操作的接口。此Control每次 Render的时候都需要调用GIS服务器获取需要的数据,然后将此图片Render为Web页的一部分。 GIS服务器负责打开GIS空间数据,接受请求,生成图片,然后返回之。我们知道,空间数据的打开、 关闭是非常耗时的操作,因此,GIS服务器应该保证“一直开着”,而不是一个简单的组件,每次请求时 都打开、关闭GIS数据。要获得这样的功能可以通过几种方式:(1)使用一般控件或Web Service,在 Global.asax中的 Application_Start 中启动打开数据;(2)使用Windows服务;(3)使用Remoting技 术,通过启动服务的方式来启动GIS服务器实例,采用Singleton方式调用服务器端,然后引用此服务器实 例,同时可以在此保存请求状态,进行缓存处理。实际系统大概是同时使用了几种技术,例如使用 Windows服务在开机时启动,然后创建Remoting服务器端。 一般来说,GIS服务器都使用了创建Map Service(地图服务)的方式,就是说,可以在GIS服务器创建 多个Service,提供Map服务。这样,前端的Web页调用Map Service服务,服务控制空间数据,在Web程序 调用之前,GIS服务器已经打开 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |