第 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
展开