参考: PostGIS官方教程
1、什么是空间数据库?
空间数据库:可以将空间要素作为数据库对象进行存储和操作的数据库。
PostGIS是一个空间数据库,Oracle Spatial和SQL Server(2008和之后版本)也是空间数据库。
通常空间数据库就是在标准数据库系统的基础上增加了对空间要素的支持。相比于标准数据库,空间数据库有三个重要组成部分:
空间数据类型
:像普通数据库中字符串、日期等类型,表述地理特征(点线面)的类型;空间函数
:包括创建、转换、管理、检索、分析比较的函数;(OGC SFSQL定义了一组通用空间函数规范,PostGIS实现了这些规范)空间索引
:便于高效的空间查找
2、PostGIS是什么?
PostGIS是在PostgreSQL数据库的基础上进行拓展的一个插件,增加对空间数据类型、空间索引和空间函数的支持。
PostGIS是由Refractions Research 开发及维护。
3、为什么使用空间数据库?
在自己之前做的WebGIS项目中,不管是矢量数据还是栅格数据,数据更多是静态的(文件型),通常使用地图服务发布软件发布为地图服务(WMS/WMTS)等,就完全可以满足需求。 但当数据经常会发生变化时,比如用户巡检数据,这种时候再用文件型数据发布为地图服务的方式就不合适了,直接将数据存入空间数据库是更恰当的方式。
为什么我们要使用空间数据库来存储数据,而不是通过shp等“文件型”:
- 文件需要特殊的应用程序才能读写 ——通常我们使用arcgis等桌面端软件对shp等地理数据文件进行修改;
- 文件不好直接修改及检索,而使用空间数据库,可以发挥SQL语句强大和功能和灵活性。
- 空间数据库支持并发操作,借助于数据库系统的事务、锁等机制;
- 空间数据库支持复杂的空间分析、数据处理工作:对于程序员可以自由使用SQ语句,组合空间函数对空间数据进行处理,而使用桌面端处理软件如QGIS通常需要多个操作;
- 空间数据库更为灵活:比如对于地图服务发布,当我们数据修改后,通常需要重新上传地理数据文件,而对于空间数据库,我们只需要修改空间数据库的数据即可。
- PostGIS的生态较好,很多地理软件和工具都支持,下边介绍;
4、PostGIS的生态
PostGIS作为空间数据库的“一哥”,有很多的工具和软件都支持直接连接PostGIS,常用的包括:QGIS、GeoServer、FME等等