本书系统、完整地介绍了WebGIS开发相关的原理与技术实践,并以综合案例的完整开发过程整合相关开发技术,使学生能够学以致用,扎实地掌握开发技术,独立开发WebGIS。本书内容包括WebGIS概述、互联网空间数据表达与存储、GIS Web服务、Web前端开发技术、Web服务器开发技术、强交互的Web应用开发—Ajax、WebGIS前端开发库、WebGIS服务器应用与开发、失踪人员信息管理及空间可视化系统开发案例。
谭永滨,东华理工大学测绘与空间信息工程学院副教授,博士毕业于武汉大学地图学与地理信息系统专业,研究方向为地理知识语义、地理数据智能化分析,主持多项国家自然科学基金项目、重点实验室开放基金项目、江西省自然科学基金项目、江西省教育厅科技项目等。
第1章 WebGIS概述 / 1
1.1 GIS应用的发展 / 1
1.1.1 GIS软件的发展阶段 / 1
1.1.2 桌面GIS与WebGIS / 2
1.2 Web技术基础 / 3
1.2.1 Web技术的发展 / 3
1.2.2 Web应用程序 / 5
1.3 WebGIS简介 / 10
1.3.1 WebGIS的定义 / 10
1.3.2 标准规范化处理 / 10
1.3.3 WebGIS的优势 / 11
1.3.4 WebGIS的不足 / 11
1.4 WebGIS的组成 / 12
1.4.1 WebGIS客户端 / 12
1.4.2 WebGIS服务器 / 12
练习题 / 13
第2章 互联网空间数据表达与存储 / 15
2.1 互联网数据特征与表达 / 15
2.1.1 大数据的特征 / 15
2.1.2 数据表达的结构化类型 / 16
2.1.3 非结构化数据的结构化表达 / 17
2.2 XML与GML / 18
2.2.1 XML简介 / 18
2.2.2 XML文档解析 / 19
2.2.3 XML的结构定义 / 20
2.2.4 GML:地理信息的XML表达 / 22
2.3 JSON与GeoJSON / 27
2.3.1 JSON的基本语法 / 27
2.3.2 JSON与XML的异同 / 28
2.3.3 第一个JSON文档 / 29
2.3.4 GeoJSON:地理信息的JSON表达 / 30
2.4 空间数据库基础 / 35
2.4.1 通用数据库 / 35
2.4.2 空间数据的存储方案 / 36
2.5 空间数据库扩展 / 37
2.5.1 PostGIS / 37
2.5.2 Oracle Spatial / 37
2.5.3 ArcSDE / 37
练习题 / 38
第3章 GIS Web服务 / 39
3.1 Web服务与SOA架构 / 39
3.1.1 Web服务 / 39
3.1.2 SOA架构 / 40
3.2 地理信息服务 / 41
3.2.1 地理信息服务概述 / 41
3.2.2 地理信息服务标准 / 41
3.2.3 OGC Web服务 / 43
练习题 / 58
第4章 Web前端开发技术 / 59
4.1 HTML / 59
4.1.1 什么是HTML? / 59
4.1.2 从HTML文档到网页 / 60
4.1.3 HTML网页的组成 / 60
4.2 CSS / 63
4.2.1 CSS的特点 / 63
4.2.2 CSS样式规则的定义 / 64
4.2.3 CSS选择器 / 67
4.2.4 CSS样式规则的冲突处理 / 67
4.3 JavaScript / 69
4.3.1 JavaScript概述 / 69
4.3.2 JavaScript基本语法 / 72
4.3.3 定义JavaScript事件 / 73
4.3.4 定义JavaScript对象 / 74
4.3.5 常用的JavaScript框架 / 75
4.4 前端开发框架 / 79
4.4.1 Vue开发框架 / 79
4.4.2 React开发框架 / 79
4.5 前端开发环境配置 / 79
练习题 / 80
第5章 Web服务器开发技术 / 83
5.1 Maven项目管理工具 / 83
5.1.1 Maven项目目录 / 83
5.1.2 核心配置文件 / 84
5.2 数据库开发 / 85
5.3 Spring Boot开源框架 / 86
5.4 Web服务器开发环境配置 / 86
5.5 Spring Boot项目实现示例 / 87
5.5.1 示例需求 / 87
5.5.2 数据准备 / 87
5.5.3 创建Spring Boot项目 / 87
5.5.4 配置Spring Boot与Mybatis依赖 / 88
5.5.5 新建Entity类对象 / 89
5.5.6 新建数据库访问接口 / 89
5.5.7 新建Service类对象 / 90
5.5.8 新建Controller类对象 / 90
5.5.9 服务发布及测试 / 91
练习题 / 92
第6章 强交互的Web应用开发—Ajax / 93
6.1 前后端交互过程 / 93
6.1.1 同步交互过程 / 93
6.1.2 异步交互过程 / 94
6.2 Ajax框架的组成 / 95
6.3 Ajax框架的优点 / 95
6.4 Ajax的实现过程 / 96
6.5 Ajax实现示例—第一个Ajax请求 / 97
6.5.1 经典Ajax实现 / 98
6.5.2 简洁Ajax实现 / 101
练习题 / 102
第7章 WebGIS前端开发库 / 103
7.1 SuperMap iClient for JavaScript库 / 103
7.1.1 简介 / 103
7.1.2 示例网页 / 104
7.2 ArcGIS API for JavaScript库 / 109
7.2.1 简介 / 109
7.2.2 地图库在线引入 / 110
7.2.3 示例网页 / 110
7.3 Leaflet库 / 113
7.3.1 简介 / 113
7.3.2 第一个Leaflet API网页 / 113
练习题 / 117
第8章 WebGIS服务器应用与开发 / 118
8.1 国内外主流的WebGIS服务器 / 118
8.1.1 WebGIS服务器概述 / 118
8.1.2 SuperMap iServer / 119
8.1.3 ArcGIS Server / 119
8.1.4 GeoServer / 120
8.2 基于SuperMap iServer的部署及服务发布 / 121
8.2.1 SuperMap iServer的安装与启动 / 121
8.2.2 在SuperMap iServer上发布地图服务 / 123
8.3 基于ArcGIS Server的部署及服务发布 / 126
8.3.1 ArcGIS Server的安装与启动 / 126
8.3.2 在ArcGIS Server上发布数据服务 / 126
8.4 基于GeoServer的部署及服务发布 / 134
8.4.1 GeoServer的安装与启动 / 134
8.4.2 在GeoServer上发布数据服务 / 135
8.5 自定义地理信息服务发布实战 / 138
8.5.1 示例数据入库 / 138
8.5.2 构建Spring Boot项目 / 139
8.5.3 实现基础WFS服务接口函数 / 141
8.5.4 服务发布与测试 / 152
练习题 / 153
第9章 失踪人员信息管理及空间可视化系统开发案例 / 154
9.1 系统开发目标与系统需求分析 / 154
9.1.1 系统开发目标 / 154
9.1.2 系统需求分析 / 154
9.2 系统设计 / 155
9.2.1 系统总体设计 / 155
9.2.2 系统开发环境配置 / 157
9.2.3 空间数据库设计 / 158
9.3 系统功能实现 / 162
9.3.1 系统前端UI设计与实现 / 162
9.3.2 空间数据服务发布 / 171
9.3.3 空间数据可视化功能设计与实现 / 174
9.3.4 空间统计功能设计与实现 / 178
9.3.5 空间数据查询功能设计与实现 / 191
9.4 系统部署 / 194
9.4.1 后台系统部署 / 194
9.4.2 前端系统部署 / 195
9.4.3 案例系统运行 / 196
参考文献 / 198