新書推薦:

《
大钱:如何选择成长股
》
售價:HK$
108.9

《
认知行为疗法:临床工作指南
》
售價:HK$
85.8

《
关系5.0
》
售價:HK$
131.9

《
翻篇是一种能力
》
售價:HK$
63.8

《
刘伯温与哪吒城:北京建城的传说
》
售價:HK$
96.8

《
文化的故事:从岩画艺术到韩国流行音乐(译林思想史)哈佛大学教授沉淀之作 获奖不断 全球热销 亲历文化史上的15个关键点 从史前艺术到当代韩流的人类文化全景
》
售價:HK$
85.8

《
不结婚的社会:双亲如何成为特权,以及家庭为何很重要
》
售價:HK$
63.8

《
怎样决定大事
》
售價:HK$
109.9
|
編輯推薦: |
涵盖WebGIS的基本原理、开发流程、技术选型、开发框架和案例分析,附赠全书案例源码
|
內容簡介: |
本书基于开源的 WebGIS 开发技术,内容涵盖 WebGIS 开发的基础知识和技术要点,并通过实际应 用和案例分析,帮助读者更好地掌握相关知识,理解 WebGIS 的应用场景和开发需求。
本书共 12 章,系统论述 WebGIS 开发的技术要点和项目实践。其中:第 1 ~ 3 章为基础篇,第 1 章主要讲解 WebGIS 开发中的 Web 基础,第 2 章为 GIS 基础介绍,第 3 章介绍开源的 WebGIS 开发框架。 第 4 ~ 10 章为高级篇,是基础篇的提升,内容涵盖 WebGIS 开发中的大部分技能和知识点。第 4 章为 GIS 应用服务介绍,第 5 章介绍使用较多的开源 GIS 服务器 GeoServer,第 6 章为空间数据管理的相关 知识,第 7 章和第 8 章主要讲解 WebGIS 开发中的矢量数据和栅格数据渲染,第 9 章为地图控件的使用, 第 10 章讲解常用的地图交互。三维篇是第 11 章,主要介绍 Cesium 框架的使用。实践篇是第 12 章,通 过一个完整的案例,介绍 WebGIS 系统开发的全流程,对 WebGIS 开发的常用知识和技术点进行全面的 贯穿和实践。
本书适用于 WebGIS 开发人员、GIS 系统管理员、相关 GIS 研究和开发人员、地理信息科学专业学 生等人群,也适用于地理信息技术爱好者和其他相关领域的人员。
|
目錄:
|
基 础 篇
第 1章 Web基础 2
1.1 开发语言 2
1.1.1 HTML 2
1.1.2 CSS 5
1.1.3 JavaScript 10
1.2 开发框架 13
1.2.1 Vue 14
1.2.2 React 16
1.2.3 Angular 17
1.3 网络基础 18
1.4 浏览器 20
1.4.1 浏览器的工作基础 20
1.4.2 浏览器调试 22
1.5 服务端基础 24
1.6 数据库基础 25
1.7 小结 26
第 2章 GIS基础 27
2.1 GIS数据 27
2.1.1 矢量数据 27
2.1.2 栅格数据 29
2.2 投影与坐标转换 30
2.2.1 地理坐标 30
2.2.2 投影坐标 31
2.2.3 Web墨卡托投影 32
2.2.4 坐标转换与EPSG 32
2.3 地理编码 33
2.4 小结 35
第 3章 WebGIS开发框架 36
3.1 OpenLayers 37
3.1.1 简介 37
3.1.2 引用 38
3.1.3 核心类说明 39
3.2 Leaflet 61
3.2.1 简介 61
3.2.2 引用 62
3.2.3 核心类说明 62
3.3 MapboxGL 82
3.3.1 简介 82
3.3.2 引用 83
3.3.3 核心类说明 83
3.4 小结 98
高 级 篇
第 4章 GIS应用服务 100
4.1 OGC标准 101
4.1.1 WMS 101
4.1.2 WFS 102
4.1.3 WMTS 104
4.1.4 WCS 105
4.2 地图切片 106
4.2.1 切片原理 106
4.2.2 切片类型 108
4.2.3 切片服务 109
4.2.4 切片工具 109
4.3 GIS服务器 113
4.3.1 ArcGIS Server 114
4.3.2 SuperMap Server 114
4.3.3 MapServer 115
4.3.4 GeoServer 116
4.4 小结 117
第 5章 GeoServer 118
5.1 GeoServer简介 118
5.2 GeoServer安装 121
5.3 数据与服务管理 122
5.3.1 工作区 122
5.3.2 数据存储 123
5.3.3 图层 128
5.3.4 图层组 131
5.3.5 样式 133
5.3.6 CQL/ECQL过滤器语言 134
5.4 切片缓存 138
5.4.1 切片图层 138
5.4.2 缓存默认设置 140
5.4.3 网格集GridSet 140
5.4.4 BlobStore 142
5.4.5 磁盘定额 142
5.5 GeoServer插件 143
5.5.1 插件的下载与安装 143
5.5.2 MongoDB插件 145
5.5.3 MySQL插件 149
5.5.4 矢量切片插件 149
5.5.5 Excel插件 151
5.6 GeoServer安全 152
5.6.1 安全管理 152
5.6.2 权限认证 155
5.6.3 数据权限 158
5.6.4 服务管理 160
5.7 其他配置 160
5.7.1 服务配置 160
5.7.2 全局设置 161
5.7.3 图像处理 164
5.8 服务能力获取 168
5.9 小结 169
第 6章 空间数据管理 170
6.1 地理空间数据 171
6.2 数据库介绍 172
6.2.1 PostgreSQL 173
6.2.2 MySQL 178
6.2.3 MongoDB 183
6.3 服务发布 184
6.3.1 底图服务 185
6.3.2 动态底图服务 185
6.4 数据安全 185
6.4.1 数据加密 186
6.4.2 坐标加密 187
6.4.3 地方坐标系 187
6.5 数据使用 188
6.6 小结 188
第 7章 矢量数据渲染 189
7.1 数据格式 189
7.1.1 WKT 189
7.1.2 GeoJSON 189
7.1.3 KML 191
7.1.4 GPX 193
7.1.5 数据接口 195
7.2 渲染类型 196
7.3 数据加载 198
7.4 渲染实现 203
7.4.1 OpenLayers渲染 203
7.4.2 Leaflet渲染 204
7.4.3 MapboxGL渲染 205
7.5 渲染原理 206
7.5.1 Canvas绘图 206
7.5.2 WebGIS中的渲染实现 210
7.6 小结 212
第 8章 栅格数据渲染 213
8.1 栅格数据加载 215
8.2 栅格瓦片 216
8.2.1 栅格瓦片存储 216
8.2.2 栅格瓦片服务发布 218
8.2.3 栅格瓦片加载 220
8.2.4 栅格瓦片渲染实现 221
8.3 WMS服务 223
8.3.1 WMS服务地址 223
8.3.2 OpenLayers中加载WMS 223
8.3.3 Leaflet中加载WMS 224
8.3.4 MapboxGL中加载WMS 224
8.3.5 WMS图层渲染原理 225
8.4 WMTS渲染 226
8.4.1 WMTS服务地址 226
8.4.2 OpenLayers加载WMTS 227
8.4.3 Leaflet加载WMTS 227
8.4.4 MapboxGL加载WMTS 228
8.5 TMS渲染 228
8.5.1 TMS服务地址 228
8.5.2 OpenLayers加载TMS 228
8.5.3 Leaflet加载TMS 229
8.5.4 MapboxGL加载TMS 229
8.6 小结 229
第 9章 地图控件 231
9.1 缩放控件 231
9.2 地图比例尺 232
9.3 光标位置 233
9.4 鹰眼图 234
9.5 地图图例 237
9.6 地图测量 240
9.7 地图绘制 243
9.8 小结 244
第10章 地图交互 245
10.1 基本交互 245
10.1.1 鼠标交互 245
10.1.2 键盘交互 246
10.1.3 触屏交互 248
10.2 矢量要素交互 249
10.2.1 选择要素 249
10.2.2 绘制要素 251
10.2.3 编辑要素 253
10.2.4 地图捕捉 259
10.3 地图叠加层 263
10.3.1 Marker 263
10.3.2 Popup 265
10.4 小结 268
三 维 篇
第11章 三维GIS 270
11.1 概述 270
11.1.1 产生与发展 270
11.1.2 新兴概念 270
11.2 WebGL 272
11.3 Cesium三维开发 274
11.3.1 Cesium引用 274
11.3.2 Cesium核心类 274
11.3.3 基础使用教程 276
11.4 小结 292
实 践 篇
第12章 基于Vue的WebGIS台风预报系统 294
12.1 功能介绍 294
12.2 搭建一个Web工程 295
12.2.1 配置Node环境 295
12.2.2 初始化Web工程 296
12.3 数据库设计 297
12.4 服务端工程搭建 302
12.4.1 Express简介 302
12.4.2 后端工程搭建 302
12.5 功能开发 306
12.5.1 地图初始化 306
12.5.2 台风警戒线 306
12.5.3 台风列表 308
12.5.4 台风预报 309
12.5.5 台风实况 311
12.5.6 风速气压 317
12.5.7 城市测距 318
12.5.8 云图、雷达图 319
12.6 系统部署 321
12.7 小结 323
参考资料 324
|
內容試閱:
|
什么是WebGIS?
顾名思义,WebGIS等于Web GIS,它是基于Web环境中的GIS。从字面意思理解,可以认为它是两种技术的融合。实际上,WebGIS开发是指利用Web技术和GIS技术,将地理空间数据和地图呈现在Web页面上,实现在线地图浏览、查询、分析等功能的开发过程。WebGIS具有跨平台使用、共享和协作、实时更新、响应式设计、低成本和易维护、大数据处理等优势,为用户提供更加便捷、高效、准确和可靠的空间信息服务。
与传统PC端GIS相比,WebGIS应用程序可以通过Web浏览器直接访问,不需要在本地计算机上安装软件,应用更加轻量,对硬件的要求也较低。在数据交互方式上,WebGIS应用程序通常通过地图服务、Web服务、RESTful API等方式获取空间数据和地图图层,与后端服务器进行交互,而PC端软件通常通过本地数据库或文件系统读写数据。WebGIS的数据交互方式更加灵活,更便于共享与协作。在用户体验上,WebGIS应用程序可以通过Web浏览器在多种设备上访问,具有良好的响应式设计和跨平台性。另外,它还解决了以文件方式管理大量数据的不便,也有效规避了使用PC端软件时的一些性能卡顿、数据管理混乱等问题。
WebGIS的发展共经历了四个阶段。
(1)WebGIS开发的起步阶段(20世纪90年代—21世纪初):WebGIS开发的早期阶段主要是以静态地图为主,此时的WebGIS应用主要用于展示静态地图和一些简单的查询功能。
(2)动态WebGIS开发的发展阶段(2000—2010年):随着Web技术的不断发展,WebGIS也得到了快速发展。2005年,Google推出了Google Maps,引领了WebGIS的新一轮发展。此时,WebGIS应用开始具备了更加丰富的功能,如地图缩放、地图拖曳、地图标注等。
(3)移动WebGIS开发的兴起阶段(2010—2019年):移动设备和4G网络的普及,使得WebGIS应用开始面向移动设备进行开发。此时,WebGIS应用主要是以响应式设计为主,适配不同的屏幕尺寸,可以提供更好的用户体验。同时,HTML5和CSS3等技术的发展也为WebGIS应用提供了更加丰富的设计和交互效果。
(4)WebGIS开发的现代化阶段(2020年至今):随着人工智能、大数据、云计算等技术的不断发展,WebGIS应用也不断进行现代化升级。此时,WebGIS应用开始具备更加高级的功能,如3D地图、虚拟现实、智能分析等。同时,WebGIS应用也开始向云端化、微服务化、开放平台化等方向发展。
如今,WebGIS应用已经成为现代地理信息技术的重要组成部分,为各种领域的应用提供强大的支持和帮助。使用WebGIS可以解决很多与地理信息有关的问题,如进行空间分析和决策支持、实现地图可视化和交互、进行城市规划和管理、环境监测和资源管理、农业生产和精准农业等。
随着地理数据的重要性日益凸显,越来越多的行业和领域需要使用WebGIS。政府部门、企业、非营利组织和研究机构等都在寻找具备WebGIS开发技能的专业人才,以满足其业务需求。学习WebGIS开发不仅可以满足市场需求,还可以为读者提供广泛的就业和职场机会。此外,掌握有关地理信息系统、网络技术和数据可视化等多方面的知识,可为读者的个人成长和职业发展奠定坚实基础。
为什么写这本书?
撰写本书的初衷,是源于作者在WebGIS行业多年的开发实践与思考,以及对过去工作经历的总结和回顾。WebGIS开发者需要学习多方面的技能与知识,包括但不限于以下几点。
(1)GIS基础知识。开发者需要了解地图数据、坐标系与地图投影、投影转换等基础知识,以确保在应用中能够正确处理和展示地理信息。
(2)Web开发技能。掌握HTML、CSS、JavaScript 等Web开发技术,能够独立开发基础的Web应用程序是WebGIS开发的前提。
(3)GIS软件。常用的软件如ArcGIS、QGIS等,开发者不仅要了解其功能和应用场景,还需要在WebGIS开发中能熟练运用这些工具进行数据处理。另外,对于常见的GIS服务器,如GeoServer、MapServer等也要有所掌握。
(4)WebGIS开发框架。二维WebGIS开发框架如OpenLayers、Leaflet、MapboxGL等,了解各框架的特点和应用场景,熟练掌握各框架的使用。另外,随着WebGIS的发展和智慧城市等的推进,三维WebGIS开发变得日益重要,要求从业者具备一定的三维GIS开发能力,掌握三维WebGIS开发框架、开发原理等。
(5)数据库技术。开发者要了解数据库的基本概念和操作,能够熟练使用常用的数据库软件,如MySQL、PostgreSQL等,同时也要求对空间数据库有所掌握。
(6)服务器端编程技术。开发者要熟悉服务器端编程语言,如Java、Python、Node等,能够进行简单的服务器端程序开发。同时,还需要了解网络知识,熟悉Web应用程序的安全性问题,能够进行基本的服务安全保障,掌握基本的安全防范措施。
(7)数据可视化技术。开发者要了解数据可视化的基本原理和技术,能够使用常用的数据可视化工具,如Canvas、WebGL、three.js、D3.js等。
WebGIS是一个相当庞大的知识体系。在实际工作中经常会遇到这样的现象:GIS专业的学生Web开发能力比较薄弱,计算机专业的学生又缺乏GIS知识,甚至有很多零基础的开发“小白”,他们完全不清楚WebGIS开发该如何学起。顺着这个思路,笔者总结了在实际工作中遇到的各种问题,梳理了WebGIS开发中需要具备的相关知识,最终完成了本书。本书所涉及的技术内容立足于真实的市场需求,所有技术总结皆源于实践经验的积淀,可谓是一部“保姆级”的WebGIS开发参考书籍。
本书旨在为广大WebGIS开发人员提供一份实用性的开发指南,介绍WebGIS的基本原理、开发流程、技术选型、开发规范和案例分析等内容,帮助开发人员快速掌握WebGIS的开发方法和技巧,提高WebGIS应用的质量和效率。本书不仅涵盖WebGIS开发的基础知识和技术,还涉及WebGIS开发的实际应用和案例分析,以帮助开发人员更好地理解WebGIS的应用场景和开发需求。
写作的过程本身就是学习和总结的过程,在写作中需要反复推敲每一段文字、每一章内容,在深入思考的同时也获得了更多的收获。一方面,在与伙伴们讨论、交流和统稿的过程中,彼此学到了更多的知识;另一方面,也有机会对自己的技术有一个更全面的认识,进一步总结、提高。笔者从传统GIS转入WebGIS开发,这中间有过相当多的疑惑和焦虑。起初,是对于如何开发一无所知,无法融入工作中的开发流程;后来通过不断学习,逐渐掌握了开发新功能的能力,但又对开发出更高质量、更高效率和更高可用性的WebGIS系统提出了新的要求。正是在这样不断磨砺的过程中,积累了从零基础到实际WebGIS开发的一些经验和心得,并决定将这些经验凝结成本书的内容,供与笔者有相同需求的人借鉴,避免走弯路。
本书内容
本书分为四部分:基础篇、高级篇、三维篇和实践篇。
基础篇包括第1~3章,主要介绍Web基础、GIS基础和WebGIS开发框架。首先,Web作为WebGIS开发中的技术基础,第1章对Web开发语言、开发框架、网络基础、浏览器工作基础与调试方法、服务端基础以及数据库基础进行讲解。其次,GIS基础是WebGIS开发中的思想核心,第2章介绍GIS数据、投影与坐标转换以及地理编码等内容。最后,第3章从核心类到每个具体类的使用,再到使用时的一些技巧,以及常用的三种WebGIS开发框架进行详尽讲解。
高级篇包括第4~10章,本篇内容对WebGIS从业人员提出了更高的要求,是基础篇内容的提升,涵盖WebGIS开发中的高阶知识。第4章讲解GIS应用服务,包括OGC标准介绍、地图切片和GIS服务器的相关内容。第5章重点介绍开源地图服务器GeoServer,从GeoServer的安装、数据管理、安全等进行全面讲解。第6章着重介绍空间数据管理,涵盖地理空间数据在WebGIS中的使用、地理空间数据库及服务发布等内容。第7章基于第3章的内容,详细介绍三种WebGIS框架下矢量数据的渲染,深入讲解WebGIS中矢量数据的交互格式、数据加载与渲染实现。第8章则是对栅格数据的渲染进行说明,包括栅格瓦片的存储、发布、渲染,并结合三种框架对WMS、WMTS、TMS等服务的渲染方法和实现逻辑进行讲解。第9章介绍什么是地图控件,以及不同框架如何添加和扩展控件的方法。第10章为地图交互的相关内容,包括地图交互的解释,地图交互与控件的区别,默认地图交互以及矢量要素交互(选择、绘制、编辑与捕捉),同时还介绍不同框架中地图叠加层(Marker和Popup)的使用。
三维篇包括第11章,主要介绍三维WebGIS开发框架的使用和相关内容,对三维GIS最新的发展趋势、概念及三维相关的技术进行介绍,同时就三维WebGIS开发最常用的框架Cesium的使用进行示例讲解。
实践篇包括第12章,是关于WebGIS开发的实际应用。以开发一个二维WebGIS系统为例,介绍WebGIS系统开发的全流程,该流程适用于所有的Web系统及二维和三维WebGIS系统开发。本章的主要目的是通过一个需求案例,说明地理空间数据在WebGIS开发中使用的具体方法和流程,使读者对使用WebGIS框架渲染地理空间数据有更加清晰和完整的概念,对开发一个完整需求有全面的认识和了解。
适用对象
笔者在本书编写过程中参考了国内外的相关书籍、文献和资料,力求内容丰富、简明且具有高度的实用性。本书适用于以下读者群体。
WebGIS开发从业者:不论是初学者还是有经验的开发人员,本书都能提供从基础到高级的技术指导,帮助他们全面掌握WebGIS开发的知识体系和实际操作技能。
GIS系统管理员:本书为GIS系统管理员提供关于WebGIS系统架构、数据管理、服务发布以及安全保障等方面的深入讲解,帮助他们更好地管理和维护WebGIS系统。
地理信息科学专业学生:本书可以作为其重要的学习参考,帮助他们掌握WebGIS相关的理论基础和实践技能,拓展他们在地理信息领域的应用能力,为以后的求职就业奠定基础。
地理信息技术爱好者:本书内容覆盖WebGIS开发的各个方面,适合对地理信息技术感兴趣的读者深入了解这一领域,并尝试进行实际开发。
其他相关领域的人员:对于从事相关领域工作的人员,如城市规划、环境科学、交通管理等,本书也能够提供有价值的技术参考,助力他们在工作中更有效地利用WebGIS技术。
致谢
本书的编写使笔者深感知识的浩瀚与个人力量的有限。能够顺利完成本书离不开许多人的支持与帮助。在此,谨向所有在此过程中给予帮助和支持的老师、同行、朋友、同事和家人,表示最诚挚的感谢。
首先感谢所有在WebGIS行业中给予指导和启发的专家学者与同行朋友。你们的无私分享和专业讨论,使我们在WebGIS领域不断成长,并积累了丰富的实践经验,这为本书的编写奠定了坚实的基础。尤其感谢那些在我们陷入困惑时给予建议和帮助的人,特别是在本书写作过程中给予帮助的颉耀文老师。曾经在颉老师“地图学”课程中所学习的知识,不仅成为了我们做好WebGIS开发的重要基石,也成为了完成本书写作的基础。在本书编写初期,颉老师给出宝贵的指导意见,在最终定稿前,还审阅了第2章的内容,细致修正了其中的措辞不当和表达不清之处,确保了这一章内容的准确性。你们的智慧与见解无疑拓宽了本书的深度与广度,而你们的无私帮助更是本书得以顺利完成的关键。
同时,感谢与我们共事的同事和工作伙伴,本书的许多内容来源于我们在实际项目中的合作与经验总结。你们的支持与协作,为本书内容提供了众多真实的案例来源,你们的指导与分享,使本书的内容更加扎实。
最后,感谢广大读者朋友们的支持,你们的需求和期望是我们写作的动力,你们的意见和建议是我们改进的方向,我们诚挚地欢迎大家批评指正,以便在今后不断完善和更新本书内容。
本书是多方智慧和努力的结晶,本书的诞生离不开大家的指导与帮助。感谢所有给予我们帮助和支持的人,愿本书能够成为WebGIS开发人员、GIS系统管理员、地理信息科学专业学生,以及所有地理信息技术爱好者的有力工具,帮助你们在WebGIS的世界中更好地探索与实践。愿我们在未来的工作中继续携手前行,共同探索WebGIS开发中新的可能性。
WebGIS路漫漫其修亦远,吾将上下而求索!
吕利利 牛健平
2024年8月
|
|