《WebGIS开发实践手册》的写作缘起

November 18, 2009 | tags 作者著作   | views
Comments 0

发表于《3SNews新闻周刊》第22期《3S书评》

  • 题外话:我主持“3S书评”栏目,来给自己的书写书评,是标准的“老王卖瓜”。但出版的书中把该讲的话都讲了,现在反而写不出个所以然来,我还是来谈谈为什么要写这本书,为什么在ArcIMS正在“被遗忘”的时刻写这么一本书吧。相信我的WebGIS学习过程,能够给大家一点启示,这样,也就足够了。

我在05年左右才第一次接触ArcIMS,毫不夸张地讲,那个时候安装ArcIMS都算是一项“技术活”,比起桌面端组件的“Next”式安装,ArcIMS要配置一堆的东西:Web服务器、Servlet引擎、ArcIMS安装、地图服务、WMS、WFS等等。如果没人点拨,大部分人在好不容易安装完之后的问题就是:我该怎么来开发它?——现在这个问题被修正为“该怎么开发一个客户端来使用ArcIMS提供的服务!”

我一开始也不知道,那就看看帮助,原来它还有三个组成程序:Author、Administrator和Designer,以及一大堆看不太懂也看不到的Connector,反正一切都模模糊糊,那就动手慢慢摸索。最简单的办法当然是去修改那一堆HTML/JavaScript文件,但要命的是这个过程没有debug工具,稍微改错,浏览器的屏幕上便弹出警告,想找到出错的地方,门儿都没有。直到今天,我也没有完全搞清楚这套文件的细末之处,所以我很佩服那些用alert进行调试的ArcIMS程序员,真了不起!

但这种开发方式的味道真的很坏,和我们熟悉的“面向对象式编程”背道而驰。然后,我没有再碰过ArcIMS,直到后来了解了Ajax、OpenLayers、RIA等知识,直到自己也写了几个Web应用程序,再回头来看,哦,原来当初走了很多弯路。

再来纠正和提醒这种“弯路”还有意义吗?在开始动笔之前,也曾踌躇再三,如今的ArcGIS Server等大型服务器提供的快速开发工具高效而强大,几乎不再需要写一行代码就能创建一个非常不错的地图客户端;况且,ArcIMS正面临“被隐退”的命运。再来撰写一本以ArcIMS为主轴的WebGIS开发教程是否有其现实意义和实用价值?但之后了解的许多情形,让我们终于下定了这一决心:

l 如果你只想在Web上发布一张地图并提供简单的查询操作,那么ArcIMS就完全足够了;

l ArcIMS的ArcXML交互方式简洁,足以让每个开发人员从中了解基本的WebGIS原理,这是学习其它更复杂技术的基础;

l RIA技术的大量使用,使得纯浏览器端应用更加简单和方便开发;

l WebGIS开发不是简单地拖放Web控件,它有自己的一套幕后逻辑;

l 如果你不想被“向导式”程序所支配,还是具备一点基本的Web知识吧;

l ……

正是本着这种希望抽丝剥茧,正本清源的想法,我们对本书的内容进行了安排:

首先,我们介绍了ArcIMS这一重要的GIS服务器和它的交互语言ArcXML,尽管ArcIMS在底层架构上与ArcGIS Server等毫无联系并且有多次传言说它将被ESRI舍弃,但作为一种仍然得到广泛应用的GIS服务器,对初学者和有经验的Web开发而言,仍然具有非常重要的实用价值,至少,你能通过它明白所谓的WebGIS开发到底是怎么回事?

由于要解释WebGIS开发是怎么一回事这个问题,我们舍弃了ArcIMS的Web ADF介绍,而是使用Ajax技术来编写一个与ArcIMS服务器进行交互的纯浏览器端应用,当然,这一过程借鉴了ArcIMS HTML/JavaScript客户端的原型,但在请求发送和响应处理上却大大不同。

我们还介绍了WebGIS开发的外延知识:OGC、SVG和瓦片式GIS。这一部分的内容并非要深入讨论某个主题,它是用来告诉我们的WebGIS开发人员,除了ArcIMS,你还需要了解这么多基本知识以扩充自己的知识面,这样才能让你建立起自己大脑中的“知识地图”,从而更快地吸收和领悟新的知识。

总之,本书的最终意图不仅仅是为了告诉读者WebGIS该如何开发,而是能够尽可能地将主流WebGIS开发过程中所使用的那些业已被封装的技术和知识,通过一种完整有序的方法进行介绍,使得无论是WebGIS的初学者,还是打算奔向更复杂的WebGIS服务器的有经验者,都能了解一些“幕后”的秘密——例如,在地图上进行量测使用的绘图技术因为浏览器的不同而分为VML、SVG,甚至是Canvas,而如果你对它们的了解程度不仅仅局限在名词了解的水平,而且还知道基本的差异和代码写法,岂不是更妙?!




发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。