书籍详情
GeoTools 地理信息系统开发
作者:王顼 刘钧文 王新宇 孙运娟
出版社:人民邮电出版社
出版时间:2022-11-01
ISBN:9787115593870
定价:¥79.80
购买这本书可以去
内容简介
GeoTools 是由开源社区维护的一套地理信息系统的开发组件和解决方案。GeoTools 的实现完整遵循了OGC 的各类规范,并在二十多年的迭代中,形成了活跃的开源社区生态。本书从GeoTools 的基本信息、社区生态开始介绍,随后以地理信息的基本概念为脉络,详细介绍GeoTools 是如何实现并管理坐标参考系统、如何管理矢量数据和栅格数据,以及如何连接地理数据库的。在本书的最后,通过实现一个空间数据管理系统,将全书的知识体系串联起来,帮助读者形成开源地理信息解决方案,来解决地理信息系统中的数据解析、坐标计算、空间关系等常见问题。本书适用于有志于从事地理信息系统开发工作的人员,也可以帮助从事传统商业地理信息系统开发和管理工作的人员进一步了解开源地理信息系统。
作者简介
王顼本硕均为地理信息系统专业,曾任职于航天天绘科技有限公司、原中国移动雄安产业研究院,现任职于京东科技集团。一直从事地理信息系统软件的研发工作,在智慧城市、智慧园区、国土空间规划、应急预警、自然资源监管等领域具有十多个成功项目的经验。刘钧文哈尔滨工业大学硕士,中国计算机学会(CCF)会员。曾任京东科技算法研究员,现任职于红山微电子技术有限公司。一直从事时空数据引擎的开发、时空数据产品的研发工作。王新宇本科就读于华盛顿大学西雅图校区地理信息系统专业。现在读于南加利福尼亚大学空间数据科学硕士,具有多年GeoTools使用经验,熟读源码。孙运娟香港理工大学地理信息学博士在读,具有多年的时空大数据处理和分析经验。
目录
第 1 章 GeoTools 基本知识 1
1.1 GeoTools 简介 2
1.2 GeoTools 架构 2
1.3 GeoTools 特性 3
1.4 GeoTools 生态 4
1.4.1 兼容地理信息系统标准 4
1.4.2 内部生态 5
1.4.3 外部生态 8
1.5 本章小结 11
第 2 章 GeoTools 快速入门 12
2.1 Java 概述 12
2.1.1 Java 语言特性 12
2.1.2 JDK 与JRE 14
2.2 GeoTools 的构建 15
2.2.1 安装构建工具 15
2.2.2 使用Maven 构建GeoTools 16
2.2.3 Java 8 与Java 11 18
2.3 GeoTools 的使用方式 18
2.3.1 引用GeoTools 依赖包 19
2.3.2 使用GeoTools 的接口 19
2.3.3 使用GeoTools 工具类 20
2.3.4 使用工厂模式 20
2.4 本章小结 21
第3 章 Java 拓扑库 22
3.1 几何对象模型概述 22
3.1.1 空间实体概述 22
3.1.2 如何描述空间实体 23
3.1.3 OpenGIS 几何对象模型 24
3.2 几何对象模型分类 24
3.2.1 几何对象 25
3.2.2 简单数据模型 26
3.2.3 集合数据模型 29
3.2.4 曲线和曲面数据模型 32
3.3 空间关系运算 33
3.3.1 九交模型概述 33
3.3.2 GeoTools 对空间关系运算的支持 37
3.4 空间索引 41
3.4.1 四叉树 41
3.4.2 k 维树 42
3.4.3 R 树 43
3.5 本章小结 44
第4 章 空间坐标系 45
4.1 地球椭球体 45
4.2 地图投影 46
4.2.1 地图投影方法 46
4.2.2 常用地图投影 48
4.3 坐标系的WKT 51
4.4 GeoTools 中的坐标系 52
4.4.1 系统架构 52
4.4.2 坐标参考系统基础分类 53
4.4.3 不同坐标参考系统的关联与约束 54
4.5 本章小结 57
第5 章 空间矢量数据管理 59
5.1 DataStore 数据管理框架 59
5.1.1 架构设计 59
5.1.2 DataStore 60
5.1.3 FeatureSource 61
5.1.4 FeatureStore 63
5.1.5 SimpleFeature 63
5.1.6 SimpleFeatureType 64
5.1.7 FeatureCollection 65
5.2 WKT 67
5.2.1 WKT 概述 67
5.2.2 WKT 对几何对象的描述方法 67
5.2.3 GeoTools 对WKT 的解析工具 68
5.3 GeoJSON 69
5.3.1 GeoJSON 概述 69
5.3.2 GeoJSON 对空间几何对象的描述方法 69
5.3.3 GeoTools 对GeoJSON 的解析工具 70
5.4 Shapefile 71
5.4.1 Shapefile 概述 71
5.4.2 Shapefile 结构 72
5.4.3 GeoTools 对Shapefile 的支持 72
5.5 GeoPackage 74
5.5.1 GeoPackage 介绍 74
5.5.2 GeoPackage 的内部结构 74
5.5.3 GeoTools 中的GeoPackage 79
5.6 实现一个自定义CSVDataStore 81
5.6.1 CSVDataStore 的实现 82
5.6.2 CSVFeatureSource 的实现 83
5.6.3 CSVFeatureReader 的实现 85
5.6.4 CSVDataStoreFactory 的实现 88
5.7 本章小结 91
第6 章 栅格数据模型 92
6.1 栅格数据概述 92
6.2 图像金字塔 93
6.2.1 图像金字塔概述 93
6.2.2 构建图像金字塔 94
6.3 GeoTools 的栅格数据管理框架 94
6.3.1 架构设计 94
6.3.2 GridCoverage 简介 95
6.3.3 GeoTools 中的栅格图像处理 96
6.4 GeoTIFF 介绍 98
6.4.1 GeoTIFF 概述 98
6.4.2 GeoTools 读取GeoTIFF 文件 99
6.5 本章小结 100
第7 章 地图样式与渲染 101
7.1 地图样式简介 101
7.1.1 架构设计 101
7.1.2 符号样式 103
7.1.3 标注样式 104
7.1.4 使用SLD 104
7.2 GeoTools 中的地图渲染 107
7.3 本章小结 109
第8 章 空间查询与空间分析 110
8.1 空间查询 110
8.1.1 上下文查询语言 110
8.1.2 扩展上下文查询语言 111
8.1.3 空间查询过滤器 111
8.1.4 空间查询对象 112
8.2 矢量空间分析 113
8.3 图分析 115
8.3.1 图概述 115
8.3.2 GeoTools 中图对象的构建 116
8.3.3 最短路径算法 117
8.3.4 GeoTools 中最短路径算法的使用 117
8.4 栅格空间分析 118
8.4.1 栅格重投影 118
8.4.2 常用栅格空间分析实例 119
8.5 本章小结 124
第9 章 GeoTools 使用数据库 125
9.1 数据库系统 125
9.1.1 什么是数据库 125
9.1.2 数据库的分类 126
9.1.3 空间数据库 127
9.2 GeoTools 对关系数据库的支持 128
9.2.1 JDBC 简介 128
9.2.2 GeoTools 对JDBC 的扩展 129
9.2.3 主要关系数据库简介 131
9.2.4 不同关系数据库的使用方式 132
9.3 GeoTools 对非关系数据库的支持 135
9.3.1 主要非关系数据库简介 135
9.3.2 不同非关系数据库的使用方式 136
9.4 本章小结 138
第 10 章 GeoTools 地图组件 139
10.1 地图可视化概述 139
10.2 Java 对可视化的支持 139
10.3 gt-swing 模块 141
10.3.1 JMapPane 141
10.3.2 JMapFrame 143
10.3.3 Dialog 类 144
10.3.4 Wizard 类 145
10.4 gt-swt 模块 147
10.4.1 SWTMapFrame 147
10.4.2 Rich Client Platform 148
10.5 本章小结 150
第 11 章 空间数据管理系统 151
11.1 空间数据管理系统架构设计 151
11.2 空间数据管理系统实现 152
11.2.1 空间数据模拟生成模块 153
11.2.2 坐标变换模块 154
11.2.3 空间数据格式转换模块 154
11.2.4 空间数据质检模块 157
11.2.5 空间数据归档入库模块 160
11.3 本章小结 162
第 12 章 常见问题 163
12.1 如何获取GeoTools 的开源许可证 163
12.2 GeoTools 的依赖下载问题 164
12.3 Shapefile 乱码问题 165
12.4 针对要素的细节操作问题 167
12.4.1 reType 方法 167
12.4.2 first 方法 167
12.4.3 createType 方法 168
12.4.4 bounds 方法 168
12.5 更新schema 失败问题 168
12.6 坐标轴顺序问题 169
12.7 圆形问题 169
12.8 经纬度距离计算问题 171
12.9 本章小结 172
1.1 GeoTools 简介 2
1.2 GeoTools 架构 2
1.3 GeoTools 特性 3
1.4 GeoTools 生态 4
1.4.1 兼容地理信息系统标准 4
1.4.2 内部生态 5
1.4.3 外部生态 8
1.5 本章小结 11
第 2 章 GeoTools 快速入门 12
2.1 Java 概述 12
2.1.1 Java 语言特性 12
2.1.2 JDK 与JRE 14
2.2 GeoTools 的构建 15
2.2.1 安装构建工具 15
2.2.2 使用Maven 构建GeoTools 16
2.2.3 Java 8 与Java 11 18
2.3 GeoTools 的使用方式 18
2.3.1 引用GeoTools 依赖包 19
2.3.2 使用GeoTools 的接口 19
2.3.3 使用GeoTools 工具类 20
2.3.4 使用工厂模式 20
2.4 本章小结 21
第3 章 Java 拓扑库 22
3.1 几何对象模型概述 22
3.1.1 空间实体概述 22
3.1.2 如何描述空间实体 23
3.1.3 OpenGIS 几何对象模型 24
3.2 几何对象模型分类 24
3.2.1 几何对象 25
3.2.2 简单数据模型 26
3.2.3 集合数据模型 29
3.2.4 曲线和曲面数据模型 32
3.3 空间关系运算 33
3.3.1 九交模型概述 33
3.3.2 GeoTools 对空间关系运算的支持 37
3.4 空间索引 41
3.4.1 四叉树 41
3.4.2 k 维树 42
3.4.3 R 树 43
3.5 本章小结 44
第4 章 空间坐标系 45
4.1 地球椭球体 45
4.2 地图投影 46
4.2.1 地图投影方法 46
4.2.2 常用地图投影 48
4.3 坐标系的WKT 51
4.4 GeoTools 中的坐标系 52
4.4.1 系统架构 52
4.4.2 坐标参考系统基础分类 53
4.4.3 不同坐标参考系统的关联与约束 54
4.5 本章小结 57
第5 章 空间矢量数据管理 59
5.1 DataStore 数据管理框架 59
5.1.1 架构设计 59
5.1.2 DataStore 60
5.1.3 FeatureSource 61
5.1.4 FeatureStore 63
5.1.5 SimpleFeature 63
5.1.6 SimpleFeatureType 64
5.1.7 FeatureCollection 65
5.2 WKT 67
5.2.1 WKT 概述 67
5.2.2 WKT 对几何对象的描述方法 67
5.2.3 GeoTools 对WKT 的解析工具 68
5.3 GeoJSON 69
5.3.1 GeoJSON 概述 69
5.3.2 GeoJSON 对空间几何对象的描述方法 69
5.3.3 GeoTools 对GeoJSON 的解析工具 70
5.4 Shapefile 71
5.4.1 Shapefile 概述 71
5.4.2 Shapefile 结构 72
5.4.3 GeoTools 对Shapefile 的支持 72
5.5 GeoPackage 74
5.5.1 GeoPackage 介绍 74
5.5.2 GeoPackage 的内部结构 74
5.5.3 GeoTools 中的GeoPackage 79
5.6 实现一个自定义CSVDataStore 81
5.6.1 CSVDataStore 的实现 82
5.6.2 CSVFeatureSource 的实现 83
5.6.3 CSVFeatureReader 的实现 85
5.6.4 CSVDataStoreFactory 的实现 88
5.7 本章小结 91
第6 章 栅格数据模型 92
6.1 栅格数据概述 92
6.2 图像金字塔 93
6.2.1 图像金字塔概述 93
6.2.2 构建图像金字塔 94
6.3 GeoTools 的栅格数据管理框架 94
6.3.1 架构设计 94
6.3.2 GridCoverage 简介 95
6.3.3 GeoTools 中的栅格图像处理 96
6.4 GeoTIFF 介绍 98
6.4.1 GeoTIFF 概述 98
6.4.2 GeoTools 读取GeoTIFF 文件 99
6.5 本章小结 100
第7 章 地图样式与渲染 101
7.1 地图样式简介 101
7.1.1 架构设计 101
7.1.2 符号样式 103
7.1.3 标注样式 104
7.1.4 使用SLD 104
7.2 GeoTools 中的地图渲染 107
7.3 本章小结 109
第8 章 空间查询与空间分析 110
8.1 空间查询 110
8.1.1 上下文查询语言 110
8.1.2 扩展上下文查询语言 111
8.1.3 空间查询过滤器 111
8.1.4 空间查询对象 112
8.2 矢量空间分析 113
8.3 图分析 115
8.3.1 图概述 115
8.3.2 GeoTools 中图对象的构建 116
8.3.3 最短路径算法 117
8.3.4 GeoTools 中最短路径算法的使用 117
8.4 栅格空间分析 118
8.4.1 栅格重投影 118
8.4.2 常用栅格空间分析实例 119
8.5 本章小结 124
第9 章 GeoTools 使用数据库 125
9.1 数据库系统 125
9.1.1 什么是数据库 125
9.1.2 数据库的分类 126
9.1.3 空间数据库 127
9.2 GeoTools 对关系数据库的支持 128
9.2.1 JDBC 简介 128
9.2.2 GeoTools 对JDBC 的扩展 129
9.2.3 主要关系数据库简介 131
9.2.4 不同关系数据库的使用方式 132
9.3 GeoTools 对非关系数据库的支持 135
9.3.1 主要非关系数据库简介 135
9.3.2 不同非关系数据库的使用方式 136
9.4 本章小结 138
第 10 章 GeoTools 地图组件 139
10.1 地图可视化概述 139
10.2 Java 对可视化的支持 139
10.3 gt-swing 模块 141
10.3.1 JMapPane 141
10.3.2 JMapFrame 143
10.3.3 Dialog 类 144
10.3.4 Wizard 类 145
10.4 gt-swt 模块 147
10.4.1 SWTMapFrame 147
10.4.2 Rich Client Platform 148
10.5 本章小结 150
第 11 章 空间数据管理系统 151
11.1 空间数据管理系统架构设计 151
11.2 空间数据管理系统实现 152
11.2.1 空间数据模拟生成模块 153
11.2.2 坐标变换模块 154
11.2.3 空间数据格式转换模块 154
11.2.4 空间数据质检模块 157
11.2.5 空间数据归档入库模块 160
11.3 本章小结 162
第 12 章 常见问题 163
12.1 如何获取GeoTools 的开源许可证 163
12.2 GeoTools 的依赖下载问题 164
12.3 Shapefile 乱码问题 165
12.4 针对要素的细节操作问题 167
12.4.1 reType 方法 167
12.4.2 first 方法 167
12.4.3 createType 方法 168
12.4.4 bounds 方法 168
12.5 更新schema 失败问题 168
12.6 坐标轴顺序问题 169
12.7 圆形问题 169
12.8 经纬度距离计算问题 171
12.9 本章小结 172
猜您喜欢