作者:jimxu(转载请注明出处,谢谢)
该文章被多人转载,并被上传百度文库,但均未注明出处,请尊重作者的脑力劳动
WEBGIS发展至今,开发方式有了很多进步,目前主要有如下方式:
1, 在服务器端直接将地图转成图片,然后客户段不使用任何插件将地图显示,当用户与地图交互的时候服务器端实时的根据用户的请求生成地图发送给客户端浏览器。
2, 服务器端直接将地图打包压缩后发送到客户端,客户端通过插件解压缩地图文件,然后读取并显示在客户端。
3, 服务器端将现有地图全部转化成图片(非实时的),然后将图片切割按照图片的属性,如图幅号等保存,当客户端请求地图的时候,服务器端根据用户所请求的地图范围直接将已经生成好的图片发送给客户端。
如今现有的大型地理信息系统平台都提供了第一,第二种方式;其中第二种方式中的插件一般使用Java平台中的Applet和微软的ActiveX,而地图数据格式或者采用SVG,或者采用CGM,或是其他压缩格式。这两种方式一般应用于局域网内,其中第一种方式在客户端负载平衡上较差,但支持多浏览器兼容。
第三种方式是近几年出现的,如GoogleMap,DDMAP,MapBar等许多优秀的主要面向地图搜索的“地图服务商”。我这里称呼他们为地图“服务”商,这是因为他们的地图系统都是面向万维网用户,乘Web2.0的东风开发一些大众服务,并非面向某个企业级的应用。这类地图有许多我们大家熟知的优点,但是她在企业级应用上明显的有很多局限,如交互性差,数据信息单一,功能简单。当然在大众服务上他们已经拥有了足够的功能与优势。
因为记得公司内部曾经提过GoogleMap如何实现等等话题,也提出过为何我们的WebGIS不作成GoogleMap那样的问题,所以我列出WebGIS的开发方式,想通过比较阐明我的看法:
在面向企业的开发中,应用于局域网内部的第一、二种方式由于提高了交互性,丰富的空间分析功能,多样的地图渲染方式能更好的满足客户的需要,尽管它牺牲了性能。并不是我们做不了GoogleMap,而是这种方式不适合我们用户的需求。而我也大胆的说,我已经能够做类似GoogleMap的地图服务了。
以上是总体的开发方式的比较与选择,我们在开发管线设施webgis系统上选择第二种方式是明智的。然而,在平台方面部门内部也存在Geomedia WebMap是否劣质的争论。
其实不管是哪个公司的WebGIS产品,在原理上都是差不多的,性能上的解决方法无非是服务器端的空间索引、缓存、压缩数据以及客户端插件在显示上的优化,其他数据管理上都是根据已有的空间数据引擎直接对空间数据进行管理,当然也存在其他一些地图发布小技巧,但性能上增强不大或者不适用。比如说我见过一个仿照第三种开发方式,将地图矢量数据分块压缩传送到客户端插件然后显示的webgis系统,这种方式的确显示速度上有提高,但将原本完整的地图数据(如一条线)切割分块,显然不满足很多应用。
WebGIS后台服务器处理地图请求的方式在技术实现上或者基于CGI,或者基于Java Servlet,或者基于IIS扩展(COM等技术)等其他ServerAPI,但CGI技术由于其一些不可回避的缺点已经有些过时了,随着技术发展,如今各大webgis平台基本上都转向了ServerAPI方式,所以都大同小异。
我个人使用并了解过ArcIMS(ESRI的产品),Supermap IS(Supermap的产品),Autodesk MapGuide(Autodesk产品)。MapXtreme我没用过但接触过mapinfo的MapInfo Prefessional和MapX。总体上我感觉,虽然各个平台二次开发方式有些不同(如ArcIMS以自定义的一套ArcXML来封装用户对地图的请求),性能几乎一致,没有哪家平台能号称速度快,能比其他同行更好的解决海量数据管理等问题。而对于gis平台的市场份额和功能的比较上也众说纷纭,ESRI亚洲区大总裁陈之坦先生曾经来浙大做过报告,他当时说是ArcGIS第一,intergraph第二,MapInfo第三;当然后来我听intergraph的说法是Geomedia比ArcGIS好,独占鳌头。抛开这些开发商的自我标榜,国内学校或者国土等部门使用ArcGIS的单位的确很多,但电信等基础设施领域Geomedia以其AM/FM/GIS应用的确有一定的客户群。
而且更重要的是:我们一直采用Intergraph的平台,Gcomms对全省集中的管线资源数据管理的背景下,在没有十足的可行性研究的情况下,我们不适合使用其他平台。这是由许多现实的原因决定的。
首先,最基本的也是最重要的就是数据原因。我们一直使用Gcomms从庞大、海量的Oracle数据库中发布DDC,并进行数据录入等日常操作,我们在97系统迁移上做了很多工作。如果我们使用其他GIS平台首先导致的就是已有许多数据与功能无法直接应用,增加了系统的复杂性,并且导致“信息孤岛”,增加了项目预算甚至项目失败。
其次,继续使用geomedia webmap由于其与gcomms内在的耦合,我们可以使用gcomms本身提供的功能,减少工作量。如上海管线资源管理系统中很吸引客户眼球的“管道路由分析”就是直接根据gcomms的路由分析做得,当时迅速并且很好的完成了客户的需求并成为一个亮点。
最后,我们谁也不能保证迁移到其他GIS平台就能保证项目取得成功或者很有优势的成功。