postgis扩展简介

PostGIS在Windows平台下和Ubuntu/Debian平台下的默认安装存在着一定的功能上差异,主要是默认安装的Extension。如果在不同平台下空间数据库的备份与恢复,可能在过程中出现无法创建Extension的错误(如,pg_restore: 错误: could not execute query: 错误: 无法打开扩展控制文件 "/XXX/extension/XXXX.control": 没有那个文件或目录)。*

PostGIS是对PostgreSQL数据库的一种空间数据拓展,通过PostGIS可以使PostgreSQL数据库支持地理要素的存储,以及相应的SQL空间查询。PostgreSQL+PostGIS事实上是一个比较优秀的开源空间数据库方案,在国外有着广泛应用,包括法国国家地理研究所(IGN)都在使用。

本文将对PostGIS的主要Extension进行简要介绍

1、postgis

postgis的基本核心功能,仅支持地理图形(矢量要素),在其他Extension前启用。

2、postgis_raster

对栅格数据的支持。

3、postgis_topology

拓扑功能的支持。

4、postgis_sfcgal

这个Extension主要是集成了CGAL(Computational Geometry Algorithms Library,计算几何算法库),来进行三维空间数据的空间运算,例如ST_3DDifference、ST_3DUnion 等,可见是通常空间运算在三维空间上的拓展。

5、postgis_tiger_geocoder

TIGER指的是(拓扑集成地理编码和参考),这个是美国人口普查局的GIS数据,提供了美国全国的行政区划、交通道路、水系等空间数据。这个Extension提供了TIGER数据的地理编码支持,需要注意的是这个Extension启用前,需要先启用fuzzystrmatch(字符串模糊查询)Extension,以及可选的address_standardizer(TIGER数据地址规则化)[4]、address_standardizer_data_us(地址规则化示例数据集)Extension。

----------------下面介绍的Extension在Ubuntu/Debian平台下需要自行安装---------------

6、ogr_fdw

这个Extension可以利用OGR读取外部的GIS数据(例如Shepfile),其实是结合了OGR和PostgreSQL的foreign data wrappers。

安装方法也很方便,在Ubuntu的软件源里就有对应PostgreSQL版本的ogr_fdw安装包:

sudo apt install postgresql-X-ogr-fdw

X为PostgreSQL的主版本号,查询PostgreSQL版本的命令为:

psql --version

启用org_fdw的方法为:

CREATE EXTENSION ogr_fdw;

7、pgrouting

pgrouting提供了对路网的分析支持,包括双向Dijkstra最短路径等10多种功能。
安装方法为:

sudo apt install postgresql-X-pgrouting

X为PostgreSQL的主版本号。

启用pgrouting的方法为:

CREATE EXTENSION pgrouting;

8、pointcloud

提供对LiDAR点云的支持,提供对点云数据的存储。这个很有意思,这里多说一点。启用pointcloud Extension的PostgreSQL 数据库,可以利用PDAL进行LiDAR点云数据的读取和保存。PADL是一个用于读取点云数据的转换和处理库,它替代了LibLAS,所以PADL+pointcloud PostgreSQL可以作为一个不错的点云数据管理方案。
安装方法为:

sudo apt install postgresql-X-pointcloud

X为PostgreSQL的主版本号。pointcloud依赖于postgresql-dev、libxml2-dev和CUnit,必须先行安装这三个库。如果要支持LAZ(点云压缩格式)还要安装LAZPERF库。

启用pointcloud的方法为:

CREATE EXTENSION pointcloud;
CREATE EXTENSION pointcloud_postgis;

以上就是PostGIS的主要Extension的介绍,以及非默认安装Extension在Ubuntu/Debian平台下的安装和启用方法。可见通过PostGIS的各种Extension,能够为各类地理数据提供管理和分析处理方案,其应用范围还是非常广泛的,而且免费开源也是非常吸引人的方面。

参考:
https://zhuanlan.zhihu.com/p/159103073

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章