WebGIS开发实践手册--基于ArcIMS、OGC和瓦片式GIS(china-pub首发)
基本信息
编辑推荐
循序渐进地介绍了开发一个WebGIS客户端应用程序的全部预备知识.
采用JavaScript API的思想实现基于对象式的WebGIS客户端..
书中给出详细的实现代码,具有很高的实用性和可操作性...
推荐阅读
内容简介回到顶部↑
webgis是一种b/s架构的“特殊”web应用程序,从最基本的http请求响应模型到热门的soap、rest服务、json和georss等术语,gis服务器的发展一直紧跟主流web技术的脚步。.
webgis开发人员很多时候都在编写一个基于浏览器的客户端程序,在相当多的gis商业软件中,这一客户端已经进行了严密的包装,以至于学习者很难了解其本质。而本书以webgis本质为切入点,从http请求响应模型出发,将两个任务——开发一个arcims客户端api和介绍瓦片式gis原理及实现作为主线,详细介绍了arcims服务器及其交互语言arcxml、javascript、vml、svg、ogc和瓦片式gis的知识,并给出了详细的实现代码,不但“授人以鱼”,而且“授人以渔”,具有很高的实用性和可操作性。..
本书适合于有一定gis开发基础的,希望掌握webgis设计和开发的中高级程序员阅读。...
webgis开发人员很多时候都在编写一个基于浏览器的客户端程序,在相当多的gis商业软件中,这一客户端已经进行了严密的包装,以至于学习者很难了解其本质。而本书以webgis本质为切入点,从http请求响应模型出发,将两个任务——开发一个arcims客户端api和介绍瓦片式gis原理及实现作为主线,详细介绍了arcims服务器及其交互语言arcxml、javascript、vml、svg、ogc和瓦片式gis的知识,并给出了详细的实现代码,不但“授人以鱼”,而且“授人以渔”,具有很高的实用性和可操作性。..
本书适合于有一定gis开发基础的,希望掌握webgis设计和开发的中高级程序员阅读。...
作译者回到顶部↑
本书提供作译者介绍
蒋波涛:知名GIS技术专家和技术作家,长期从事基于ArcGIS平台和开源GIS的技术研究、开发和传播工作,曾先后出版《插件式GIS应用框架的设计与实现》、《GIS for Web应用开发之道》(译)、《ArcObjects开发基础与技巧》等多本GIS技术书籍。.
朱强:高级工程师,曾在国内相关技术刊物上发表过多篇论文,长期从事地理信息产业与技术的管理和研究工作,对GIS有着深入的见解。..
钱旭东:毕业于北京建筑工程学院工程测量专业,由于对GIS和编程的喜爱,从工程测量转行到了GIS,曾专职研究规划及地理信息的.. << 查看详细
朱强:高级工程师,曾在国内相关技术刊物上发表过多篇论文,长期从事地理信息产业与技术的管理和研究工作,对GIS有着深入的见解。..
钱旭东:毕业于北京建筑工程学院工程测量专业,由于对GIS和编程的喜爱,从工程测量转行到了GIS,曾专职研究规划及地理信息的.. << 查看详细
目录回到顶部↑
第1章 剖析webgis. 1
1.1 互联网与网络协议 3
1.2 网络gis 15
1.3 webgis详解 17
1.4 本书将带来什么? 23
第2章 gis服务器arcims 25
2.1 arcims体系架构 26
2.2 arcims服务器层组件 27
2.3 arcims的进程 32
2.4 arcims连接器和web adf 34
2.5 arcims的管理组件 37
2.6 arcims自定义开发方式 42
2.7 本书的第一个目标 43
第3章 arcxml语言 45
3.1 arcxml简介 45
3.2 arcxml测试工具 48
3.3 arcxml详解 56
3.4 本章小结 96
第5章 webgis开发预备技术 97
4.1 javascript要点 98
1.1 互联网与网络协议 3
1.2 网络gis 15
1.3 webgis详解 17
1.4 本书将带来什么? 23
第2章 gis服务器arcims 25
2.1 arcims体系架构 26
2.2 arcims服务器层组件 27
2.3 arcims的进程 32
2.4 arcims连接器和web adf 34
2.5 arcims的管理组件 37
2.6 arcims自定义开发方式 42
2.7 本书的第一个目标 43
第3章 arcxml语言 45
3.1 arcxml简介 45
3.2 arcxml测试工具 48
3.3 arcxml详解 56
3.4 本章小结 96
第5章 webgis开发预备技术 97
4.1 javascript要点 98
前言回到顶部↑
在开始动笔之前,我们曾踌躇再三,如今的ArcGIS Server等大型GIS服务器发展得如火如荼,提供的快速开发工具高效而强大,再来撰写一本以ArcIMS为主轴的WebGIS开发教程是否有其现实意义和实用价值?但之后了解的许多情形,让我们终于下定了这一决心:.
如果你只想在Web上发布一张地图并提供简单的查询操作,那么ArcIMS完全足够了;
ArcIMS的ArcXML交互方式简洁,可足以让每个开发人员从中了解基本的WebGIS原理,这是学习其他更复杂技术的基础;
Ajax的大量使用,使得纯浏览器端的应用更加简单和开发方便;
WebGIS开发不是简单地拖放Web控件,而是拥有自己的一套幕后逻辑;
……
这是一堆技术上的原因。
第二个让我们下定决心的现实是,随着许多GIS服务器客户端应用程序(ADF)的封装越来越严密,开发人员甚至无须编写一行代码就能得到基本功能的Client。在“向导式”快速开发的背后,越来越多的WebGIS开发人员甚至连基本的Web知识都不再具备——既然拖拉一下地图控件就能实现“强大的”功能,为什么我们还要想更多的问题呢?尚若真是如此,这样的“技术人员”可替代性是否太强了?
第三个决心是与Web相关的东西太多太复杂,基于浏览器的应用程序的开发比桌面端应用程序复杂得多(开发人员要考虑不同的浏览器环境)。作为一种Web实现,WebGIS自然也不能够免俗,当开发商将一堆堆名词和术语包裹在WebGIS表面时,即使不甘心只会一路点击“Next”的初学者都会有力有不逮的感觉,逐渐地,你将无力剥开它表面那层厚厚的包装,不信,你去翻翻ArcGIS Server的ADF看看!
如之奈何?
在这本书中,我们对这三个问题进行了既有区分、又相统一的回答:..
首先,我们介绍了ArcIMS这一重要的GIS服务器和它的交互语言ArcXML,尽管ArcIMS在底层架构上与ArcGIS Server等毫无联系,并且有多次传言说它将被ESRI舍弃,但作为一种仍然得到广泛应用的GIS服务器,对初学者和有经验的Web开发者而言,仍然具有非常重要的实用价值,至少,你能通过它明白所谓的WebGIS开发到底是怎么回事?
由于要解释WebGIS开发是怎么一回事这个问题,我们舍弃了ArcIMS的Web ADF介绍,虽然这是一个非常优秀的快速开发框架,但却封装了太多的信息。再加上Ajax技术在Web上的影响,我们开始使用Ajax技术来编写一个与ArcIMS服务器进行交互的纯浏览器端应用。当然,这一过程借鉴了ArcIMS HTML/JavaScript客户端的原型,但在请求发送和响应处理上却大大不同。最后,我们将所有的js文件都内联到一起,以一个js链接的方式嵌入HTML页面中进行应用(如果你使用过Google Maps API或OpenLayers API,就会发现这种用法的简洁性)。
在开发完这个ArcIMS客户端后,我们开始介绍WebGIS开发的外延知识:OGC、SVG和瓦片式GIS。这一部分的内容并非要深入讨论某个主题,它是用来告诉我们的WebGIS开发人员,除了ArcIMS,你还要了解这么多基本知识以扩充自己的知识面,这样才能让你建立起自己大脑中的“知识地图”,从而更快地吸收和领悟新的知识。
总之,本书的最终意图不只是为了告诉读者WebGIS该如何开发,而是尽可能地将主流WebGIS开发过程中所使用的那些业已被封装的技术和知识,通过一种完整有序的方法进行介绍,使得无论是WebGIS的初学者,还是打算奔向更复杂的WebGIS服务器的有经验者,都能了解一些“幕后”的秘密——例如,在地图上进行量测使用的绘图技术因为浏览器的不同而分为VML、SVG,甚至是Canvas,而如果你对它们的了解程度不仅仅局限在了解名词的水平,而且还知道基本的差异和代码写法,岂不是更妙?!...
如果你只想在Web上发布一张地图并提供简单的查询操作,那么ArcIMS完全足够了;
ArcIMS的ArcXML交互方式简洁,可足以让每个开发人员从中了解基本的WebGIS原理,这是学习其他更复杂技术的基础;
Ajax的大量使用,使得纯浏览器端的应用更加简单和开发方便;
WebGIS开发不是简单地拖放Web控件,而是拥有自己的一套幕后逻辑;
……
这是一堆技术上的原因。
第二个让我们下定决心的现实是,随着许多GIS服务器客户端应用程序(ADF)的封装越来越严密,开发人员甚至无须编写一行代码就能得到基本功能的Client。在“向导式”快速开发的背后,越来越多的WebGIS开发人员甚至连基本的Web知识都不再具备——既然拖拉一下地图控件就能实现“强大的”功能,为什么我们还要想更多的问题呢?尚若真是如此,这样的“技术人员”可替代性是否太强了?
第三个决心是与Web相关的东西太多太复杂,基于浏览器的应用程序的开发比桌面端应用程序复杂得多(开发人员要考虑不同的浏览器环境)。作为一种Web实现,WebGIS自然也不能够免俗,当开发商将一堆堆名词和术语包裹在WebGIS表面时,即使不甘心只会一路点击“Next”的初学者都会有力有不逮的感觉,逐渐地,你将无力剥开它表面那层厚厚的包装,不信,你去翻翻ArcGIS Server的ADF看看!
如之奈何?
在这本书中,我们对这三个问题进行了既有区分、又相统一的回答:..
首先,我们介绍了ArcIMS这一重要的GIS服务器和它的交互语言ArcXML,尽管ArcIMS在底层架构上与ArcGIS Server等毫无联系,并且有多次传言说它将被ESRI舍弃,但作为一种仍然得到广泛应用的GIS服务器,对初学者和有经验的Web开发者而言,仍然具有非常重要的实用价值,至少,你能通过它明白所谓的WebGIS开发到底是怎么回事?
由于要解释WebGIS开发是怎么一回事这个问题,我们舍弃了ArcIMS的Web ADF介绍,虽然这是一个非常优秀的快速开发框架,但却封装了太多的信息。再加上Ajax技术在Web上的影响,我们开始使用Ajax技术来编写一个与ArcIMS服务器进行交互的纯浏览器端应用。当然,这一过程借鉴了ArcIMS HTML/JavaScript客户端的原型,但在请求发送和响应处理上却大大不同。最后,我们将所有的js文件都内联到一起,以一个js链接的方式嵌入HTML页面中进行应用(如果你使用过Google Maps API或OpenLayers API,就会发现这种用法的简洁性)。
在开发完这个ArcIMS客户端后,我们开始介绍WebGIS开发的外延知识:OGC、SVG和瓦片式GIS。这一部分的内容并非要深入讨论某个主题,它是用来告诉我们的WebGIS开发人员,除了ArcIMS,你还要了解这么多基本知识以扩充自己的知识面,这样才能让你建立起自己大脑中的“知识地图”,从而更快地吸收和领悟新的知识。
总之,本书的最终意图不只是为了告诉读者WebGIS该如何开发,而是尽可能地将主流WebGIS开发过程中所使用的那些业已被封装的技术和知识,通过一种完整有序的方法进行介绍,使得无论是WebGIS的初学者,还是打算奔向更复杂的WebGIS服务器的有经验者,都能了解一些“幕后”的秘密——例如,在地图上进行量测使用的绘图技术因为浏览器的不同而分为VML、SVG,甚至是Canvas,而如果你对它们的了解程度不仅仅局限在了解名词的水平,而且还知道基本的差异和代码写法,岂不是更妙?!...
序言回到顶部↑
现在,各式各样的开发工具和平台变得越来越强大、越来越方便了。强大到“一句顶一万句”——以往实现一个功能或许要写一大堆的程序或脚本,可现在只要用鼠标拖-放就可以 “万事大吉”;方便到使用者可以把自己当成“傻瓜”——你可以不需要知道这个工具和平台后面都在暗地里捣鼓些啥,只要记住基本的几招,就可以拼凑出一个基本过得去的“作品”来,以至于自己不经意间成了各式“傻瓜机”的推销对象。诚然,工具和平台的强大与方便本身是不应该受到谴责的;如果你是非技术人员、非开发人员,自然可以乐得轻松,免去许多技术性的烦恼;但是,如果很不幸你正好就是从事开发工作的工程技术人员,那你就有必要对当下的大好形势保持清醒的头脑了。因为,作为开发人员,你不但要知其然,更要知其所以然。.
本人参与或主持过众多技术人员的应聘面试工作,也曾长期管理过大大小小的技术工程师团队。在与他们的接触中,的确感到有一些伙计们虽然干的是技术活,却常常对自己手头的活只知其一、不知其二。表现出来的就是:经不住问。他知道如何做一件事,但不知道为什么要这样做,不知道这背后的原理和机制是什么。只要多问几句,可能就“傻”在那儿了。作为一个开发者,如果满足于拖-放的水准,那这样的人相对来说的确很多,也比较容易批量“烘培”出炉。那他到底能走多远而不被后来者替代呢?在竞争极其激烈的时代,我们从事技术开发的同仁们,对此不可不查。..
蒋波涛及其合作者们想必对此是了然于心的。他们选择从ArcIMS及其交互语言ArcXML入手来介绍WebGIS的开发,从实践的角度,以读书笔记式的笔触,一点点、一层层地为读者解读WebGIS开发实践入门中常常碰到的种种“为什么”,让人读起来颇感解渴。诚然,就Web的发展而论,ArcIMS本身及其直接相关的技术,应该算是第一代的,或称Web 1.0的。而ArcGIS Server(现在是9.3.1版,明年第一季度将有9.4版面世)才真正是当前WebGIS发展潮流和技术水平的代表。无疑,ArcGIS Server是属于Web 2.0时代的,与ArcIMS实实在在有了跨代的差别。在ESRI自身的产品进化线条上,ArcIMS的痕迹的确正在被渐渐淡化,ArcGIS Server才是当前和将来一段时期内网络GIS舞台中心的主角儿。这里,我想说的是,尽管如此,正如波涛老弟在《WebGIS开发实践手册》前言中所表达的,ArcIMS及其相关技术和手段,在不少需要在WEB环境中实现基本的空间信息及GIS功能发布的场合还有其用武之地;WebGIS开发需要开发者们了解很多隐藏在控件后面的“所以然”;要真正进入到Web 2.0的天地,自如地追随WebGIS的最新潮流,我们有很多技术概念和术语需要了解。对这三个方面的问题,本书都给予了我们深入浅出的解答与启发。对于要用ArcIMS进行开发的工程师而言,这本实践手册是十分实用的。而对于要进一步涉足第二代WebGIS开发的同仁,这部书的内容为其提供了一个不错的台阶和铺垫,是一个不错的过渡。
波涛老弟硕士毕业没几年,已有关于GIS开发的一本译作和三本专著问世,可谓青年才俊。有趣的是,他不是GIS专业毕业的,却在不长的时间里捣鼓出这些本销量和反响都不错的GIS开发专著来;他也不是学的软件专业,却把软件开发的许多知识和工具手段运用自如,吃透嚼烂后深入浅出地娓娓道来,给人以帮助与启发。他现在城市规划管理部门工作,以他融会贯通的悟性和脚踏实地的钻研劲,整日浸润其间,在GIS应用开发和城市规划管理业务的结合方面,波涛是否会再给我们带来更多的好东西?想必可以期待。
蔡晓兵
ESRI中国(北京)有限公司 副总裁/首席咨询专家...
本人参与或主持过众多技术人员的应聘面试工作,也曾长期管理过大大小小的技术工程师团队。在与他们的接触中,的确感到有一些伙计们虽然干的是技术活,却常常对自己手头的活只知其一、不知其二。表现出来的就是:经不住问。他知道如何做一件事,但不知道为什么要这样做,不知道这背后的原理和机制是什么。只要多问几句,可能就“傻”在那儿了。作为一个开发者,如果满足于拖-放的水准,那这样的人相对来说的确很多,也比较容易批量“烘培”出炉。那他到底能走多远而不被后来者替代呢?在竞争极其激烈的时代,我们从事技术开发的同仁们,对此不可不查。..
蒋波涛及其合作者们想必对此是了然于心的。他们选择从ArcIMS及其交互语言ArcXML入手来介绍WebGIS的开发,从实践的角度,以读书笔记式的笔触,一点点、一层层地为读者解读WebGIS开发实践入门中常常碰到的种种“为什么”,让人读起来颇感解渴。诚然,就Web的发展而论,ArcIMS本身及其直接相关的技术,应该算是第一代的,或称Web 1.0的。而ArcGIS Server(现在是9.3.1版,明年第一季度将有9.4版面世)才真正是当前WebGIS发展潮流和技术水平的代表。无疑,ArcGIS Server是属于Web 2.0时代的,与ArcIMS实实在在有了跨代的差别。在ESRI自身的产品进化线条上,ArcIMS的痕迹的确正在被渐渐淡化,ArcGIS Server才是当前和将来一段时期内网络GIS舞台中心的主角儿。这里,我想说的是,尽管如此,正如波涛老弟在《WebGIS开发实践手册》前言中所表达的,ArcIMS及其相关技术和手段,在不少需要在WEB环境中实现基本的空间信息及GIS功能发布的场合还有其用武之地;WebGIS开发需要开发者们了解很多隐藏在控件后面的“所以然”;要真正进入到Web 2.0的天地,自如地追随WebGIS的最新潮流,我们有很多技术概念和术语需要了解。对这三个方面的问题,本书都给予了我们深入浅出的解答与启发。对于要用ArcIMS进行开发的工程师而言,这本实践手册是十分实用的。而对于要进一步涉足第二代WebGIS开发的同仁,这部书的内容为其提供了一个不错的台阶和铺垫,是一个不错的过渡。
波涛老弟硕士毕业没几年,已有关于GIS开发的一本译作和三本专著问世,可谓青年才俊。有趣的是,他不是GIS专业毕业的,却在不长的时间里捣鼓出这些本销量和反响都不错的GIS开发专著来;他也不是学的软件专业,却把软件开发的许多知识和工具手段运用自如,吃透嚼烂后深入浅出地娓娓道来,给人以帮助与启发。他现在城市规划管理部门工作,以他融会贯通的悟性和脚踏实地的钻研劲,整日浸润其间,在GIS应用开发和城市规划管理业务的结合方面,波涛是否会再给我们带来更多的好东西?想必可以期待。
蔡晓兵
ESRI中国(北京)有限公司 副总裁/首席咨询专家...

点击看大图









加载中...
