本书以循序渐进的方式,通过讲解OGC制定的相关开放Web服务规范,介绍Web GIS的原理;详解了一整套利用开源软件与开放数据开发Web GIS的方案,包括空间数据库存储软件PostGIS、数据处理客户端软件QGIS、服务器端软件GeoServer,以及浏览器页面端开发JavaScript API库OpenLayers , 并通过实践的方式,逐步介绍这些开源软件的应用,以及如何利用OpenLayers在互联网上共享地理信息、开发Web GIS 2.0应用;最后,还介绍了OpenStreetMap等开放数据的下载与使用方法。
本书主要读者对象为地理信息系统专业的本科生与硕士研究生、政府、企业相关部门的GIS研究与开发人员,另外还适合作为各种GIS培训班的学习教材与参考书。
互联网与GIS 结合而形成的Web GIS是GIS软件发展的必然趋势。本书以循序渐进的方式,通过讲解OGC制定的相关开放Web服务规范,介绍了Web GIS的原理;详解了一整套利用开源软件与开放数据开发Web GIS的方案,包括空间数据库存储软件PostGIS、数据处理客户端软件QGIS、服务器端软件GeoServer,以及浏览器页面端开发JavaScript API库OpenLayers,并通过实践的方式,一步一步地介绍这些开源软件的应用,以及如何利用OpenLayers在互联网上共享地理信息、开发Web GIS2.0应用;最后,本书还介绍了OpenStreetMap等开放数据的下载与使用方法。
本书主要读者对象为地理信息系统专业的本科生与硕士研究生,也适用于政府、企业相关部门的GIS研究与开发人员,还适合作为各种GIS培训班的学习教材与参考书。
第1章 Web GIS概述 1
1.1 GIS的发展 2
1.2 Web GIS及其发展 3
1.2.1 传统Web GIS的不足 3
1.2.2 从Web站点发展为Web服务 4
1.2.3 从SOAP发展为REST 5
1.2.4 从三层架构发展为多层架构 6
1.2.5 从Web GIS 1.0到2.0 7
1.3 Web服务 8
1.3.1 Web服务的重要性 8
1.3.2 REST及REST风格的Web服务 11
1.3.3 查看在线的Web服务 13
1.3.4 OGC的Web服务规范 15
1.4 自由及开源软件、开放规范与开放数据 16
1.4.1 自由及开源GIS软件 17
1.4.2 开放规范的使用 17
1.4.3 开放数据的作用 18
1.5 实践1:QGIS的安装与基本使用 19
1.6 习题 22
第2章 Web服务与Web GIS的设计 23
2.1 Web GIS的系统架构 24
2.2 Web地图的组成 26
2.2.1 基础底图 27
2.2.2 专题图层 28
2.2.3 交互小组件 29
2.3 实践2:GeoServer的安装与初步使用 29
2.4 习题 33
第3章 空间数据的存储与处理 34
3.1 空间数据常用的开放格式 35
3.1.1 基于文件的数据 35
3.1.2 基于空间数据库的数据 38
3.2 Web GIS中的数据层 39
3.2.1 服务器的选择 39
3.2.2 文件与数据库方式的选择 40
3.2.3 开放数据格式与专有格式的选择 40
3.3 处理空间数据的开源工具 40
3.3.1 QGIS 41
3.3.2 GDAL与OGR工具 42
3.4 实践3:使用QGIS裁剪与投影变换矢量数据 43
3.4.1 使用QGIS裁剪数据并转换投影 43
3.4.2 使用OGR命令行工具裁剪与投影变换数据 45
3.4.3 在批处理中运行OGR功能 47
3.4.4 数据整合 48
3.5 实践4:使用QGIS处理栅格数据 48
3.6 实践5:PostGIS的安装与初步使用 52
3.6.1 安装PostGIS 52
3.6.2 创建空间数据库 53
3.6.3 导入空间数据 54
3.7 习题 57
第4章 使用WMS在服务器端绘制与查询地图 58
4.1 动态绘制地图服务 59
4.1.1 动态绘制地图的优点 59
4.1.2 动态绘制地图的缺点 59
4.1.3 动态绘制地图的相关服务器软件 60
4.2 WMS规范基础 60
4.2.1 使用GetCapabilities操作请求服务元数据 61
4.2.2 使用GetMap操作请求地图 64
4.2.3 使用GetFeatureInfo操作请求地图要素信息 65
4.3 WMS的样式与符号 67
4.3.1 使用GetStyles操作请求样式 67
4.3.2 使用GetLegendGraphic操作请求图例 68
4.4 实践6:使用GeoServer发布WMS服务 69
4.4.1 使用默认样式发布一个图层 69
4.4.2 使用样式化图层描述符 72
4.4.3 在QGIS中访问WMS 77
4.5 实践7:高级符号与图层组 78
4.5.1 使用QGIS创建样式化图层描述符 78
4.5.2 将多图层发布为WMS服务 80
4.6 习题 82
第5章 切片地图 83
5.1 为什么使用切片地图 84
5.2 何时使用地图切片 86
5.2.1 是否有满足需求的切片地图 86
5.2.2 投影 87
5.2.3 比例尺 88
5.3 创建与提供切片地图服务的策略 89
5.3.1 创建切片地图的策略 90
5.3.2 使用开源软件创建切片 90
5.4 实践8:使用GeoWebCache创建切片 91
5.5 实践9:使用TileMill创建切片 93
5.5.1 使用TileMill设计地图 93
5.5.2 输出与提取地图切片 99
5.5.3 发布与测试切片 102
5.6 习题 104
第6章 使用Web地图API访问地图服务 105
6.1 Web地图API 106
6.1.1 Web地图API的选择 106
6.1.2 主要FOSS类型的Web地图API 107
6.1.3 主要的商业Web地图API 108
6.2 使用Web地图API的基本步骤 110
6.2.1 引用JavaScript与样式文件 110
6.2.2 地图div与对象 111
6.2.3 Layer对象 111
6.2.4 图层样式化机制 112
6.2.5 事件与交互元素 113
6.3 查看OpenLayers实例 115
6.3.1 切片地图实例 115
6.3.2 WMS实例 116
6.3.3 查询实例 116
6.4 实践10:使用OpenLayers实现在切片地图上叠加WMS 119
6.4.1 发布专题数据WMS服务 120
6.4.2 准备开发环境 121
6.4.3 页面设计与代码编写 122
6.5 习题 127
第7章 在客户端绘制矢量数据 128
7.1 在客户端绘制矢量数据的优势与挑战 129
7.1.1 客户端绘制矢量数据的优势 129
7.1.2 客户端绘制矢量数据的挑战 130
7.1.3 客户端如何绘制矢量数据 130
7.1.4 从服务器获取数据的方法 130
7.2 使用KML矢量数据 131
7.2.1 KML简介 131
7.2.2 在OpenLayers中使用KML 132
7.3 使用GeoJSON 133
7.3.1 GeoJSON简介 133
7.3.2 在OpenLayers中使用GeoJSON 134
7.4 在OpenLayers中符号化矢量图层 135
7.5 实践11:在OpenLayers使用GeoJSON图层 137
7.6 实践12:访问用户KML数据 142
7.6.1 页面设计 142
7.6.2 功能实现 143
7.7 习题 148
第8章 主流JavaScript框架的使用与专题制图 149
8.1 主流JavaScript框架 150
8.1.1 jQuery 150
8.1.2 Mootools 151
8.1.3 Ext JS 151
8.1.4 Dojo 152
8.2 OpenLayers的控件 154
8.3 基于属性值符号化图层 156
8.3.1 在OpenLayers中读取属性值 157
8.3.2 独立值专题图 158
8.3.3 等级符号专题图 159
8.3.4 范围专题图 160
8.3.5 根据属性限制要素的显示 163
8.4 实践13:使用OpenLayers与Dojo进行专题制图 165
8.4.1 页面布局 165
8.4.2 代码设计 168
8.5 习题 174
第9章 Web要素服务 176
9.1 WFS 177
9.1.1 WFS请求与响应的格式 177
9.1.2 WFS服务器与客户端 179
9.2 事务性WFS与基于Web的数据编辑 180
9.3 实践14:基于Web的空间数据编辑功能实现 181
9.3.1 发布服务 181
9.3.2 基于Web编辑功能开发 182
9.4 习题 190
第10章 WCS及多维数据 191
10.1 WCS及其操作 192
10.1.1 GetCapabilities操作 192
10.1.2 DescribeCoverage操作 193
10.1.3 GetCoverage操作 194
10.2 多维数据与图像镶嵌插件 195
10.2.1 多维数据 195
10.2.2 图像镶嵌插件 198
10.3 实践15:多维数据WCS的发布 198
10.3.1 发布时间序列栅格数据 198
10.3.2 发布时间序列与高程序列栅格数据 204
10.4 实践16:在OpenLayers中访问WCS 207
10.4.1 页面设计 207
10.4.2 代码设计 208
10.5 习题 211
第11章 Web处理服务 212
11.1 GeoServer中的WPS 213
11.1.1 WPS扩展的安装 213
11.1.2 GeoServer中WPS包含的类型 214
11.2 WPS的操作 215
11.2.1 GetCapabilities操作 215
11.2.2 DescribeProcess操作 216
11.2.3 Execute操作 217
11.3 实践17:使用WPS创建等高线地图 219
11.3.1 创建静态等高线地图 219
11.3.2 动态创建等高线 223
11.4 实践18:在OpenLayers中使用WPS 229
11.4.1 页面设计 230
11.4.2 代码实现 230
11.5 习题 233
第12章 开放数据获取与地图混搭应用 236
12.1 开放数据的方式 237
12.1.1 开放数据许可 237
12.1.2 商业软件与开放数据 238
12.2 VGI与众包项目 239
12.2.1 VGI 239
12.2.2 众包 240
12.3 OpenStreetMap及其开放数据的应用 240
12.3.1 OpenStreetMap数据模式 241
12.3.2 OpenStreetMap的使用 243
12.4 地图混搭应用 245
12.4.1 混搭应用的概念 245
12.4.2 网络资源 245
12.5 实践19:从OpenStreetMap获取源数据 249
12.5.1 使用QGIS下载数据 250
12.5.2 使用OpenStreetMap查询API下载数据 253
12.6 实践20:城市天气预报系统开发 256
12.6.1 服务准备与页面设计 256
12.6.2 代码实现 256
12.7 习题 261
前 言
计算机科学技术的飞速发展为GIS(地理信息系统)提供了先进的工具和手段,使GIS得到了快速发展,应用日益广泛。进入21世纪后,互联网技术的普及更使GIS的发展发生了质的变化,互联网已成为GIS新的操作平台。互联网与GIS的结合即Web GIS,改变了地理信息的获取、传输、发布、共享和应用的方式。在互联网发布地理信息,为用户提供空间数据浏览、查询、专题图制作与空间分析功能,从而实现地理信息的操作与共享,已经成为GIS发展的必然趋势。
Web GIS概念的首次提出是在1994年,指在互联网上部署GIS,旨在解决冗余数据、昂贵数据的整合以及分布处理能力,将利用新的技术、市场和决策系统来开启我们的世界。Web GIS是一个分散式的地理信息网络服务,可让地理信息通过OGC标准和W3C的界面互相沟通存取,凭借良好的互操作性达到以往需要庞大数据量才能实现的功能,使用者可以随意使用在Web GIS里的地理空间数据。Web GIS可让各个符合国际标准的地理信息数据库之间通过API方式沟通,从而保证数据不再局限于单一数据库中,可形成网格数据库。Web GIS是人类社会团体、组织和民众协同合作所建立的信息架构,摆脱以往GIS只适用于专业人士的状况,真正地让使用者搜索生活中的各种信息。
早期的Web GIS虽然拥有技术上的先进性,但是推广至一般用户较为困难,然而由于近几年Web 2.0 Mapping系统的发展,出现了崭新的应用,让以往需要大量数据才能实现的Web应用,现在只需要使用Web 2.0网站提供的API即可实现。Google、Yahoo!、Microsoft等公司纷纷推出属于自己的地图API,大大降低了以往开发电子地图的门槛,让许多以Google Map、Bing Map等电子地图为显示底图的应用网站如雨后春笋般地发展。例如,有显示性侵害犯罪的MapSexOffenders.com、反映芝加哥犯罪的www.chicagocrime.org;结合照片与影像的Flickr与Panoramio;让使用者创造属于自己的地图,并让Google Map和其他网页结合的My Map+;也有提供爱好旅游的使用者通过系统机制和blog分享旅游经验,期望建立旅游社群的MyTripBook;提供飞机航班及时信息的fboweb.com;结合天气信息的Weather Underground;租房信息的housingmaps.com。这些应用都显示了目前电子地图正受到大家的重视,相信未来Web GIS 2.0会更加蓬勃发展。
构建Web GIS 2.0应用是一个系统工程,包含数据加工处理、数据存储管理、地图制作、地图服务发布、专题数据发布、空间分析功能发布以及系统开发。在该过程中,需要使用多个软件与工具。这些软件与工具既有商业的,同样也有免费与开源的。利用开源软件构建Web GIS 2.0应用就是本书介绍的主要内容。
第1章在简单回顾GIS发展历程之后,着重介绍Web GIS的发展以及Web服务的重要性,同时还将介绍自由及开源软件以及在使用过程中存在的优缺点。最后将介绍客户端开源软件QGIS的安装与基本使用。
第2章介绍Web GIS的系统架构与Web地图的构成。此外,还介绍用于创建地理Web服务的开源软件GeoServer的安装与基本应用,包括GeoServer的Web管理页面及图层预览等。
第3章介绍了在自由及开源软件领域存储与处理空间数据的多种选择,列出了空间数据常见的开放格式,各种数据存储结构和格式的优点。最后以实践的方式介绍了如何使用QGIS与GDAL来处理GIS数据,以及如何在PostGIS中创建空间数据库并导入空间数据。
第4章着重介绍了开放地理空间联盟制定的WMS规范。虽然WMS并没有使用最新的技术,却是一个被广泛使用的规范,是Web GIS的基础。此外,还介绍了如何结合QGIS与GeoServer发布带高级符号的WMS服务。
第5章介绍了地图切片的利弊,以及创建与维护地图缓存的策略。最后通过两个实践演示如何在实际工作中创建地图切片。
第6章介绍了当前主流的Web地图API,并着重介绍了OpenLayers的基本使用方法。
第7章介绍了在客户端负责绘制矢量数据的方式与方法。这是当前Web GIS的专题图层普遍采用的方式,将所有复杂的符号系统和地图绘制功能转移到客户端,使服务器只需要提供原始的矢量数据和属性数据。这意味着地图引擎可以更有效地响应,从而增强交互性以及提升性能。
第8章介绍了引入主流JavaScript框架,例如Dojo、jQuery等,以便增强Web地图的用户体验。此外,还介绍了如何通过专题制图,以更丰富的形式展现空间信息。
第9章介绍了WFS及其服务的发布、访问与应用,并介绍了如何通过该服务实现基于Web的空间数据编辑。
第10章介绍了WCS服务规范及其在多维数据中的应用,以及如何利用GeoServer将带有时间与高程信息的多维数据发布为WCS服务。
第11章介绍了WPS及其服务的发布、访问与应用,并介绍了如何通过WPS服务实现基于Web的等高线生成以及空间数据的处理。
第12章介绍了“开放数据”的不同含义,并介绍了开放数据OpenStreetMap及其多种数据下载方法。此外,还介绍了混搭应用及其开发方法。
本书源代码的下载地址为:http://pan.baidu.com/s/1pKSLvVP。如果下载有问题,请电子邮件联系booksaga@126.com,邮件主题为“求Web GIS原理与应用开发源代码”。
本书除了封面署名作者之外,参与本书编写的人员还有刘增良、韩光瞬、唐大仕、刘小东、贺小飞、李珍贵、陈艳玲、杨海、唐伯旺、黄泽清、李凤英、仇诗良和戴海燕等。
由于编者水平、经验有限,书中肯定存在一些疏漏和错误,希望能得到广大读者的批评和指正。
编 者
2016年6月
我一直认为,一本优秀的技术书籍,除了讲解核心知识,还应该具备一种引导读者思考的能力,而这本书恰恰做到了这一点。在阅读过程中,我时常会因为书中某些开放性的问题或者作者的一些“未竟之语”而陷入沉思,并主动去查阅相关的资料。例如,在讨论“实时地图更新”技术时,作者并没有给出一个“万能”的解决方案,而是列举了几种常见的实现方式,并分析了各自的优劣,然后鼓励读者思考在特定网络环境和数据量下,哪种方式更优,或者是否有更具创新的实现路径。这种“启发式”的教学,让我感觉自己不再是被动地接受知识,而是主动地参与到知识的构建过程中。书中对未来Web GIS发展趋势的探讨也让我印象深刻,虽然只是简略的几笔,但已经勾勒出了一个清晰的图景,让我对这个领域的前景充满了期待,也为我指明了学习和研究的方向。我记得当时读到关于“地理空间信息融合与AI应用”的部分,虽然还没有深入研究,但已经在我心中种下了一颗种子,让我开始关注相关的新技术和新动态。这本书在我看来,不仅仅是一本工具书,更像是一本“思想启蒙书”。
评分我不得不说,这本书在案例的选取上真的非常有代表性,而且覆盖的领域也非常广泛。从城市规划、环境保护,到交通管理、商业选址,几乎囊括了Web GIS能够应用的各个主要方面。更难得的是,每个案例的介绍都不仅仅停留在“用了什么技术”,而是深入剖析了“为什么选择这个技术”以及“这个技术解决了什么实际问题”。作者在讲解每个案例时,都会详细描述项目的背景、目标、所遇到的挑战,以及最终实现的解决方案。这种“问题-解决方案”的叙事结构,让读者能够清晰地看到Web GIS在实际场景中的价值和作用,也更容易理解技术背后的逻辑。我印象最深刻的是关于“智慧旅游”的案例,书中详细展示了如何整合多源异构的旅游数据,构建一个集信息查询、路线规划、景点推荐于一体的Web GIS平台,这让我对Web GIS在服务行业中的应用有了全新的认识。而且,书中还提供了一些非常实用的开发思路和代码片段,虽然这些代码片段并不直接构成完整项目,但它们就像一个个精美的积木,可以启发读者去构建自己的应用。我经常会将书中的代码片段作为起点,然后结合自己的项目需求进行修改和扩展,这大大缩短了我的开发周期。
评分这套书的语言风格极其朴实,没有华丽辞藻的堆砌,也没有故弄玄虚的术语,字里行间流淌的是作者数十年一线开发经验的沉淀。我最喜欢的是作者在讲解一些关键概念时,常常会引用一些生动的生活化案例,或者类比一些读者更容易理解的事物。比如,在解释“空间数据模型”时,作者并没有直接抛出一堆专业名词,而是用“就像为城市中的每一栋建筑、每一条街道都建立一个档案,里面记录着它的位置、大小、用途等信息”来比喻,瞬间就将抽象的概念具象化了。这种“润物细无声”的教学方式,让我在阅读过程中感觉非常轻松,仿佛有一位经验丰富的前辈在耳边娓娓道来。书中还穿插了不少“经验之谈”和“避坑指南”,这些都是在正式的技术讲解之外的宝贵财富。作者会毫不保留地分享自己在实际开发中遇到的各种坑,以及如何规避它们,这对于初学者来说简直是福音。我记得有一次,我在处理大量地理编码数据时遇到了性能瓶颈,当时正是书中关于“数据批量处理优化”章节里的几点建议,让我找到了解决问题的关键,大大提升了工作效率。这种接地气的讲解方式,让这本书不仅仅是一本技术书籍,更像是一位良师益友,陪伴我成长。
评分这本书的排版风格真是让人眼前一亮,从封面设计到内页的字体选择、行间距处理,都透着一股严谨而又不失亲和力的专业气质。我尤其欣赏它在章节划分上的细致,逻辑清晰,循序渐进,哪怕是初次接触Web GIS的读者,也能被引导着一步步深入理解核心概念。每一章的结尾都附有精心设计的习题,这些习题不仅能帮助巩固当天所学,更重要的是,它们往往能激发更深层次的思考,让我开始主动探索那些书中没有直接阐述的延伸知识点。书中的图示和插图也堪称教科书级别的范例,无论是系统架构图还是数据流程图,都绘制得异常清晰,准确地传达了复杂的技术细节,极大地降低了理解门槛。我记得有一次,我卡在一个特定的技术点上,翻来覆去地读了书中相关章节,最终结合着那张关于地图渲染流程的流程图,茅塞顿开。这种图文并茂的处理方式,让原本枯燥的技术描述变得生动有趣,也让我在学习过程中少走了很多弯路。而且,作者在介绍一些通用性较强的原理时,并没有局限于特定的开发框架,而是从更宏观的角度进行讲解,这使得书中介绍的理念和方法具有更强的普适性,即便未来我选择不同的技术栈,也能够触类旁通。
评分这本书在理论知识的深度和广度上都做得相当出色。它并没有仅仅停留在“如何使用某个工具”的层面,而是深入挖掘了Web GIS背后支撑的 GIS学原理、空间数据结构、网络通信协议等等。我特别欣赏书中关于“投影与坐标系”的讲解,作者花了大量篇幅来阐述不同投影方式的优缺点以及在不同场景下的适用性,并配以大量的图示和实际案例,彻底打消了我以往对这个概念的模糊认识。我过去一直以为只要能显示地图就行,但读完这部分,我才意识到正确理解和运用投影系统对于保证空间数据的精度和分析的准确性至关重要。此外,书中对“空间分析算法”的介绍也相当到位,不仅仅列举了几个常用的算法,还详细解释了它们的原理、计算过程以及在实际应用中的意义。例如,在讲解“缓冲区分析”时,作者不仅说明了如何生成缓冲区,还讨论了如何处理不同形状的缓冲区域,以及如何进行叠置分析。这种由浅入深、由表及里的讲解方式,让我在掌握技术的同时,也提升了对GIS学科的整体理解能力。
评分帮朋友买的,应该可以,看了一眼是正版书籍,可以
评分打折力度大
评分不错
评分不错,很好,推荐阅读,web前端开发
评分帮朋友买的,应该可以,看了一眼是正版书籍,可以
评分不值这个价钱!粗糙
评分不值这个价钱!粗糙
评分不错
评分书比较专业,讲的还不错,值得一看,还没看完,但是收获不少,学习中。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有