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数据地址规则化)、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,能够为各类地理数据提供管理和分析处理方案,其应用范围还是非常广泛的,而且免费开源也是非常吸引人的方面。
【postgis扩展简介】参考:
https://zhuanlan.zhihu.com/p/159103073
推荐阅读
- Unity和Android通信系列文章2——扩展UnityPlayerActivity
- java简介|Java是什么(Java能用来干什么?)
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- 什么是张拉膜结构雨棚(有哪些特点?)
- ACI注册国际心理咨询师简介和可靠性分析
- 新一代Python包管理工具
- 黑猴子的家(Flume简介)
- Elasticsearch|Elasticsearch 简介
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- Ditto