- ISBN:9787302632863
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:500
- 出版时间:2023-06-01
- 条形码:9787302632863 ; 978-7-302-63286-3
本书特色
《PostGIS实战(第3版)》是一本很好的、介绍PostGIS的书, 作者Regina是PostGIS核心开发团队和项目指导委员会的成员,拥有丰富的实践经验。本书的主要特点是示例丰富,让读者在例子中不断尝试并探索,从而掌握相关的知识。此外,本书内容较为全面,读者可以根据自己的需要选择特定章节进行学习。
本书由三部分组成:
第I部分介绍空间关系数据库的基本概念,特别是PostGIS 与PostgreSQL。通过这部分的学习,你可以了解几何、地理、栅格和拓扑等类型的基本概念,掌握每种类型可以解决的问题,并对空间参考系统和数据库存储选项有-一个基本的理解。*重要的是,学完本部分的内容后,你将掌握如何加载、查询和查看启用PostGIS的PostgreSQI数据库中的空间数据。
第II部分的重点是使用PostGIS解决实际的空间问题,例如使用几何和地理类型进行邻近度分析,使用矢量运算优化数据,使用栅格处理和地图代数计算统计信息,以及使用拓扑保证编辑的一致性,等等。
第III部分介绍一些常见的用于补充和增强PostGIS的开源服务器端工具,如过程化语言PLR、PL/Python和PL/V8,以及创建网络路由应用程序的工具pgRouting,还介绍PostGIS在Web应用程序中的应用。
内容简介
PostGIS是PostgreSQL的空间数据库扩展。它可以为要处理的几乎任何地理数据任务提供特性和支持。通过使用PostGIS,用户只需要编写几行SQL代码就能够创建位置感知查询,并轻松构建制图、栅格分析或路由应用程序的后端。 《PostGIS实战(第3版)》展示了如何解决现实世界的地理数据问题。你将**基本的制图,探索应用程序的自定义函数。这个**版本引入了新的PostGIS特性,如PostGIS窗口函数、并行查询,以及使用JSON和矢量切片函数为应用程序输出数据。 ●针对PostGIS 3.1和PostgreSQL 13进行了修订 ●优化查询以获得**速度 ●简化几何图形以提高效率 ●将PostGIS扩展到网络和桌面应用程序
目录
第1章 什么是空间数据库 3
1.1 空间思维 3
1.2 初步了解PostGIS 5
1.2.1 为什么选择PostGIS 6
1.2.2 适用标准 6
1.2.3 强大的PostGIS 7
1.2.4 建立在PostgreSQL之上 8
1.2.5 金钱上免费 8
1.2.6 使用上自由 8
1.2.7 PostGIS的替代选择 9
1.3 安装PostGIS 11
1.4 空间数据类型 13
1.4.1 几何类型 14
1.4.2 地理类型 14
1.4.3 栅格类型 15
1.4.4 拓扑类型 15
1.5 你好,真实世界 16
1.5.1 理解问题 16
1.5.2 建模 17
1.5.3 加载数据 19
1.5.4 编写查询代码 21
1.5.5 使用OpenJUMP查看空间数据 21
1.6 本章小结 23
第2章 空间数据类型 25
2.1 类型修饰符 26
2.1.1 子类型修饰符 26
2.1.2 空间参考标识符 27
2.2 几何 27
2.2.1 点 28
2.2.2 线串 29
2.2.3 多边形 30
2.2.4 几何图形集合 33
2.2.5 M坐标 37
2.2.6 Z坐标 38
2.2.7 多面体表面和TIN 40
2.2.8 生成TIN 41
2.2.9 曲线几何图形 42
2.2.10 几何图形的空间目录 46
2.3 地理 49
2.3.1 geography和geometry的区别 49
2.3.2 geography空间目录 51
2.4 栅格 51
2.4.1 栅格的属性 51
2.4.2 创建栅格 53
2.4.3 栅格空间目录 54
2.5 本章小结 55
第3章 空间参考系统 57
3.1 空间参考系统是什么 57
3.1.1 大地水准面 58
3.1.2 椭球体 59
3.1.3 基准 61
3.1.4 坐标参考系统 61
3.1.5 空间参考系统要素 62
3.1.6 投影 62
3.2 选择存储数据的空间参考系统 64
3.2.1 使用EPSG:4326的利弊 65
3.2.2 EPSG:4326地理数据类型 66
3.2.3 仅用于演示的地图 66
3.2.4 在涉及距离时覆盖全球 69
3.3 确定源数据的空间参考系统 72
3.3.1 推测空间参考系统 72
3.3.2 当spatial_ref_sys表中缺少SRS时 76
3.4 PostGIS中PROJ支持的历史 76
3.4.1 PROJ 4 77
3.4.2 PROJ 5 77
3.4.3 PROJ 6 77
3.4.4 PROJ 7 78
3.4.5 PROJ 8和更高版本 78
3.5 本章小结 78
第4章 处理真实数据 81
4.1 PostgreSQL内置工具 82
4.1.1 psql 82
4.1.2 pgAdmin 4 83
4.1.3 pg_dump和pg_restore 84
4.2 下载文件 84
4.3 提取文件 85
4.4 导入和导出形状文件 86
4.4.1 使用shp2pgsql导入 86
4.4.2 使用shp2pgsql-gui导入和导出 88
4.4.3 使用pgsql2shp导出 90
4.5 使用ogr2ogr导入和导出矢量数据 91
4.5.1 ogr2ogr的环境变量 92
4.5.2 ogrinfo 92
4.5.3 使用ogr2ogr导入 92
4.5.4 使用ogr2ogr导出 96
4.6 使用PostgreSQL外部数据封装器查询外部数据 99
4.6.1 file_fdw外部数据封装器 100
4.6.2 ogr_fdw外部数据封装器 102
4.6.3 将hstore标记转换为jsonb 106
4.7 使用raster2pgsql导入栅格数据 107
4.7.1 raster2pgsql命令行开关 107
4.7.2 raster2pgsql支持的格式 108
4.7.3 使用raster2pgsql加载单个文件 109
4.7.4 在shell脚本中加载多个文件并进行切片 109
4.7.5 使用PostgreSQL函数输出栅格数据 110
4.8 使用GDAL导出栅格数据 111
4.8.1 使用gdalinfo检查栅格 112
4.8.2 gdal_translate和gdalwarp 113
4.9 本章小结 115
第5章 在桌面上使用PostGIS 117
5.1 桌面查看工具一瞥 117
5.1.1 OpenJUMP简介 118
5.1.2 QGIS简介 118
5.1.3 gvSIG简介 119
5.1.4 Jupyter记事本和JupyterLab简介 119
5.1.5 空间数据库支持 120
5.1.6 格式支持 121
5.1.7 支持的Web服务 122
5.2 OpenJUMP 123
5.2.1 OpenJUMP特性总结 123
5.2.2 安装OpenJUMP 123
5.2.3 易用性 124
5.2.4 OpenJUMP插件 124
5.2.5 OpenJUMP脚本 124
5.2.6 OpenJUMP格式支持 124
5.2.7 PostGIS支持 124
5.2.8 注册数据源 125
5.2.9 渲染PostGIS几何图形 126
5.2.10 导出数据 128
5.3 QGIS 128
5.3.1 安装QGIS 129
5.3.2 将QGIS与PostGIS结合起来使用 129
5.4 gvSIG 134
5.4.1 gvSIG与PostGIS搭配使用 135
5.4.2 导出数据 137
5.5 JupyterLab和Jupyter记事本 137
5.5.1 安装Jupyter 138
5.5.2 启动Jupyter记事本 139
5.5.3 启动JupyterLab 139
5.5.4 创建Python记事本文件 140
5.5.5 魔术命令 140
5.5.6 使用Jupyter记事本执行原始查询 141
5.5.7 使用GeoPandas、Shapely和Matplotlib处理空间数据 142
5.5.8 使用folium查看地图上的数据 145
5.6 本章小结 147
第6章 几何和地理函数 149
6.1 输出函数 150
6.1.1 WKT和WKB 150
6.1.2 Keyhole标记语言 150
6.1.3 地理标记语言 151
6.1.4 几何JavaScript对象表示法 151
6.1.5 可缩放矢量图形 151
6.1.6 Mapbox矢量切片和协议缓冲区 152
6.1.7 Tiny WKB 153
6.1.8 可扩展3D图形 153
6.1.9 输出函数示例 153
6.1.10 Geohash 154
6.2 构造函数 155
6.2.1 使用文本和二进制格式创建几何图形 155
6.2.2 使用文本和二进制格式创建地理图形 158
6.2.3 将文本或二进制表示用作函数参数 159
6.3 访问器和设置器函数 159
6.3.1 空间参考标识符 160
6.3.2 将几何图形转换为不同的空间参考 160
6.3.3 使用地理类型的转换 161
6.3.4 几何类型函数 162
6.3.5 几何维度和坐标维度 163
6.3.6 检索坐标 164
6.3.7 检查几何有效性 164
6.3.8 定义几何图形的点数 164
6.4 测量函数 166
6.4.1 几何平面测量 166
6.4.2 大地测量 167
6.5 分解函数 168
6.5.1 几何图形的边界框 168
6.5.2 生成边界和将多边形转换为线串 170
6.5.3 形心、中间点和表面上的点 171
6.5.4 返回定义几何图形的点 173
6.5.5 分解多个几何图形和几何图形集合 173
6.6 合成函数 175
6.6.1 合成点 175
6.6.2 合成多边形 176
6.6.3 将单个几何图形提升为几何图形集合 177
6.7 简化函数 178
6.7.1 栅格捕捉和坐标舍入 178
6.7.2 简化函数 178
6.8 本章小结 180
第7章 栅格函数 181
7.1 栅格术语 182
7.2 栅格构造函数 183
7.2.1 使用ST_AsRaster将几何图形转换为栅格 184
7.2.2 使用raster2pgsql加载栅格 186
7.2.3 从头开始构建栅格:
ST_MakeEmptyRaster和
ST_AddBand 187
7.2.4 设置像素:ST_SetValue和ST_SetValues 187
7.2.5 利用其他栅格创建栅格 189
7.2.6 使用ST_FromGDALRaster转换其他栅格格式 191
7.3 栅格输出函数 191
7.3.1 ST_AsPNG、ST_AsJPEG和ST_AsTiff 191
7.3.2 使用ST_AsGDALRaster进行输出 192
7.3.3 使用psql导出栅格 194
7.4 栅格访问器和设置器 196
7.4.1 基本栅格元数据属性 196
7.4.2 像素统计 197
7.4.3 像素值访问器 198
7.4.4 波段元数据设置器 200
7.5 地理配准函数 200
7.5.1 元数据设置器 201
7.5.2 处理函数 202
7.6 重分类函数 204
7.7 多边形化函数 205
7.7.1 ST_ConvexHull 205
7.7.2 ST_Envelope 205
7.7.3 ST_Polygon 205
7.7.4 ST_MinConvexHull 206
7.8 本章小结 206
第8章 空间关系 207
8.1 边界框和几何比较器 208
8.1.1 边界框 208
8.1.2 边界框比较器 209
8.2 两个几何图形的关系 210
8.2.1 几何图形的内部、外部和边界 210
8.2.2 相交 211
8.2.3 房屋平面图模型 215
8.2.4 包含和内部 216
8.2.5 覆盖和被覆盖 218
8.2.6 完全包含 218
8.2.7 几何图形重叠 219
8.2.8 接触几何图形 220
8.2.9 相等的不同方面:几何 222
8.2.10 关系函数的基础 224
8.3 本章小结 227
第Ⅱ部分 将PostGIS投入工作
第9章 邻近度分析 231
9.1 *近邻搜索 232
9.1.1 哪些位置在X距离之内 232
9.1.2 对N个*接近的结果使用ST_DWithin和ST_Distance函数 232
9.1.3 使用ST_DWithin函数和DISTINCT ON查找*近的位置 232
9.1.4 与公差相交 233
9.1.5 距离之间的条目 234
9.1.6 使用KNN距离运算符查找N个*近的位置 234
9.2 将KNN用于地理类型 237
9.3 地理标记 239
9.3.1 特定区域的标记数据 240
9.3.2 线性参照:线串的*近捕捉点 240
9.3.3 PostGIS聚类窗口函数 242
9.4 本章小结 244
第10章 PostGIS TIGER 地理编码 245
10.1 安装PostGIS TIGER地理编码器 246
10.2 加载TIGER数据 246
10.2.1 配置表 247
10.2.2 加载国家/地区和州数据 248
10.3 标准化地址 250
10.3.1 使用normalize_address 250
10.3.2 使用PAGC地址标准化程序 252
10.4 地理编码 254
10.4.1 使用地址文本进行地理编码 254
10.4.2 使用标准化地址进行地理编码 256
10.4.3 地理编码交集 256
10.4.4 批处理地理编码 257
10.5 反向地理编码 259
10.6 本章小结 260 第11章 几何与地理处理 261
11.1 利用空间聚合函数 261
11.1.1 利用多个多边形集合记录创建一个多边形集合 261
11.1.2 将点连为线串 265
11.2 裁剪、拆分和嵌格 267
11.2.1 裁剪 267
11.2.2 拆分 268
11.2.3 嵌格 269
11.3 将线串分段 277
11.3.1 拆分线串 277
11.3.2 用多点线串创建两点线串 278
11.3.3 在点连接处切断线串 279
11.4 平移、缩放、旋转几何图形 282
11.4.1 平移 282
11.4.2 缩放 283
11.4.3 旋转 284
11.5 利用几何函数操作和创建地理数据 285
11.5.1 cast-safe函数 286
11.5.2 transformation-recommended函数 286
11.6 本章小结 287
第12章 栅格处理 289
12.1 加载和准备栅格数据 289
12.2 利用空间聚合函数形成更大的栅格 291
12.2.1 重组切片文件 291
12.2.2 利用裁剪和合并分割出感兴趣的区域 292
12.2.3 使用ST_Union的特定表达式类型 292
12.3 与波段有关的处理 293
12.3.1 利用ST_AddBand将单波段栅格合并成多波段栅格 293
12.3.2 利用ST_Band处理波段的子集 294
12.4 生成栅格切片 294
12.5 栅格和几何图形的交集 296
12.5.1 像素统计 298
12.5.2 利用ST_Value函数和ST_SetZ
函数向二维线串添加Z坐标 298
12.5.3 将二维多边形转化为三维多面体 300
12.6 栅格统计 301
12.6.1 提取像素值 302
12.6.2 栅格统计函数 304
12.7 地图代数 306
12.7.1 在表达式和回调函数之间做选择 306
12.7.2 使用一个单波段地图代数表达式 307
12.7.3 使用一个单波段地图代数函数 308
12.7.4 邻域地图代数 309
12.8 本章小结 311
第13章 构建和使用拓扑 313
13.1 什么是拓扑 314
13.2 使用拓扑 314
13.2.1 安装拓扑扩展 315
13.2.2 创建拓扑 315
13.2.3 拓扑几何图形类型 320
13.2.4 对拓扑用法的简要回顾 323
13.3 维多利亚市的拓扑 323
13.3.1 创建维多利亚的拓扑 323
13.3.2 向拓扑中添加原语 324
13.3.3 创建拓扑几何图形 326
13.4 通过编辑拓扑原语来修复拓扑几何问题 330
13.4.1 通过删除边来移除面 332
13.4.2 检查共享面 333
13.4.3 编辑拓扑几何 334
13.5 插入和编辑大型数据集 334
13.6 拓扑的简化 337
13.7 拓扑验证和汇总函数 338
13.8 本章小结 339
第14章 组织空间数据 341
14.1 空间存储方法 341
14.1.1 异构列 342
14.1.2 同构列 343
14.1.3 typmod与约束对比 344
14.1.4 表继承 345
14.1.5 表分区 348
14.2 建模真实的城市 352
14.2.1 使用异构几何列建模 353
14.2.2 使用同构几何列建模 356
14.2.3 使用分区建模 358
14.3 创建可自动更新的视图 363
14.4 使用触发器和规则 364
14.4.1 触发器 364
14.4.2 使用INSTEAD OF触发器 365
14.4.3 使用其他触发器 366
14.5 本章小结 368
第15章 查询性能调优 369
15.1 查询规划器 369
15.1.1 不同类型的空间查询 370
15.1.2 公用表表达式及其对规划的影响 372
15.2 规划器策略 373
15.3 使用解释来诊断问题 374
15.3.1 文本解释与pgAdmin图形化解释 375
15.3.2 无索引的规划 376
15.4 规划器与索引 380
15.4.1 具有空间索引的规划 381
15.4.2 索引 383
15.5 常见SQL模式及其对规划的影响 386
15.5.1 SELECT中的子查询 386
15.5.2 FROM子查询与基本公用表表达式 393
15.5.3 窗口函数与自连接 394
15.5.4 横向连接 396
15.6 系统和函数设置 398
15.6.1 影响规划策略的关键系统变量 399
15.6.2 函数专用设置 401
15.6.3 鼓励并行规划 403
15.7 优化空间数据 403
15.7.1 修复无效的几何图形 404
15.7.2 通过简化来减少顶点数量 404
15.7.3 通过拆分几何图形来减少顶点数量 404
15.7.4 集群 404
15.8 本章小结 407
第Ⅲ部分 搭配其他工具使用PostGIS
第16章 使用pgRouting和过程化语言扩展PostGIS 411
16.1 使用pgRouting解决网络路由问题 412
16.2 使用PL扩展PostgreSQL 418
16.2.1 PL的基本安装 418
16.2.2 你能用PL做什么 418
16.3 PL/R 420
16.3.1 PL/R入门 420
16.3.2 你能用PL/R做什么 421
16.3.3 在PL/R中使用R包 424
16.3.4 将几何图形转换为R空间对象并绘制空间对象 426
16.3.5 将绘图输出为二进制文件 427
16.4 PL/Python 428
16.4.1 安装PL/Python 428
16.4.2 编写一个PL/Python函数 429
16.4.3 使用Python包 430
16.4.4 地理编码示例 432
16.5 PL/V8:数据库中的JavaScript 433
16.5.1 安装PL/V8 433
16.5.2 在数据库中启用PL/V8 434
16.5.3 在PL/V8中使用其他JavaScript库和函数 434
16.5.4 使用PL/V8编写地图代数函数 437
16.6 本章小结 440
第17章 在Web应用程序中使用PostGIS 441
17.1 传统Web技术的局限性 442
17.2 地图服务器 442
17.2.1 轻量级地图服务器 443
17.2.2 完整地图服务器 445
17.3 地图客户端 448
17.4 使用MapServer 450
17.4.1 安装MapServer 450
17.4.2 安全性考虑 452
17.4.3 创建WMS和WFS服务 452
17.4.4 使用反向代理调用地图服务 455
17.5 使用GeoServer 456
17.5.1 安装GeoServer 456
17.5.2 设置PostGIS工作空间 456
17.5.3 通过GeoServer WMS/WFS访问PostGIS图层 458
17.6 OpenLayers和Leaflet基础 459
17.6.1 OpenLayers入门 460
17.6.2 Leaflet入门 463
17.6.3 OpenLayers和Leaflet API总结 465
17.7 通过PostGIS查询和Web脚本显示数据 465
17.7.1 使用PostGIS和PostgreSQL几何输出函数 465
17.7.2 使用PostGIS的MVT输出函数 470
17.8 本章小结 473
以下内容通过扫描封底二维码获取
附录A 其他资源 475
附录B 安装、编译和升级 479
附录C SQL入门 489
作者简介
Regina Obe和Leo Hsu是数据库顾问和作者。Regina是PostGIS核心开发团队和项目指导委员会的成员。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥19.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0