瀚高数据库
目录
环境
文档用途
详细信息
环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:14
文档用途
系列性的介绍PostGIS及GIS周边的相关资料,本文介绍PostGIS简单使用
详细信息
· 登录数据库:
[postgres@localhost ~]$ psql postgres postgres
· 创建postGIS扩展:
postgres=# create extension postgis;
· PG中创建扩展时,可以指定创建在哪个模式下,默认是public:
postgres=# \dx
List of installed extensions
Name | Version | Schema | Description
---------+----------+------------+------------------------------------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
postgis | 3.2.2dev | public | PostGIS geometry and geography spatial types and functions
上面是已经包含的扩展。
· postgis扩展会在public下创建表spatial_ref_sys,和视图geography_columns、geometry_columns;
spatial_ref_sys是坐标系汇总表,srid字段是坐标系名称代码,srtext字段是可以称为坐标系名称及定义;比较常用的坐标系有:WGS 84,国际上通用,代码4326;国内有些要求使用China Geodetic Coordinate System 2000(CGCS2000),又称中国大地坐标系统,代码4490。
geometry_columns:对当前数据库下的geometry字段的汇总,包括:其所在的数据库、模式、表、字段名称、维度、坐标系、几何类型。可以看作主要是平面类型。
geography_columns:对当前数据库下的geography字段的汇总,主要是地理(球面)类型。
1、 创建表
CREATE TABLE roads (
id SERIAL PRIMARY KEY,
name VARCHAR(64),
geom geometry(LINESTRING,3005)
);
CREATE TABLE global_points (
id SERIAL PRIMARY KEY,
name VARCHAR(64),
location geography(POINT,4326)
);
3005、4326都是坐标系代码,不指定会默认给一个坐标系,一般是4326。
2、创建几何表示例
· 使用默认 SRID 创建一个包含任何类型的几何图形的表:
CREATE TABLE geoms(gid serial PRIMARY KEY, geom geometry );
· 使用默认 SRID 创建具有 2D POINT 几何图形的表:
CREATE TABLE pts(gid serial PRIMARY KEY, geom geometry(POINT) );
· 创建一个具有 3D (XYZ) POINT 和显式 SRID 为 3005 的表:
CREATE TABLE pts(gid serial PRIMARY KEY, geom geometry(POINTZ,3005) );
· 使用默认 SRID 创建具有 4D (XYZM) 线串几何图形的表:
CREATE TABLE lines(gid serial PRIMARY KEY, geom geometry(LINESTRINGZM) );
· 使用 SRID 4267(NAD 1927 长纬度)创建具有 2D 多边形几何图形的表:
CREATE TABLE polys(gid serial PRIMARY KEY, geom geometry(POLYGON,4267) );
· 一个表中可以有多个几何列。这可以在创建表时指定,也可以使用 ALTER TABLE SQL 语句添加列。本示例添加一个可以保存 3D 线串的列:
ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326);
3、提供的函数:
函数数量太多,下面列出几个函数分类:
· 表管理函数,例如:返回几何字段的坐标系;增加几何字段
· 几何构造函数,例如:使用坐标创建点
· 几何体访问函数,例如:返回几何图形的边界
· 几何编辑函数,例如:向线中加一个点
· 几何验证,例如:验证几何图形是否有效
· 空间参考系统函数,例如:给几何图形设置坐标系
· 几何输入:
WKT(Well-Known Text),从文本构建几何类型
WKB(Well-Known Binary),从二进制构建几何类型
从其他格式构建集合类型,例如:从geojson输出 PostGIS 几何对象
· 几何输出,与几何输入相反
· 拓扑关系,例如:计算两个几何图形是否相交
· 距离关系,例如:计算点是否在定义的圆内
· 测量功能,例如:计算多边形的面积
· 覆盖函数,例如:计算两个几何图形相交(不相交)的部分
· 几何处理,例如:计算几何图形的几何中心
· 仿射变换,例如:围绕原点、X、Y、Z轴旋转几何图形
· 边界框函数,例如:返回几何图形的X、Y、Z的最大最小值
· 线性参照,例如:截取线的一部分
· 版本函数,返回依赖库的版本
4、相关扩展:
· postgis:核心,所有扩展的基础
· postgis_raster:栅格数据功能,postgis自带
· postgis_topology:拓扑功能,postgis自带
· postgis_tiger_geocoder:(postgis自带)对TIGER数据的地理编码功能,依赖fuzzystrmatch(字符串模糊查询,pg自带)扩展,以及address_standardizer(提供地址标准化功能,可选,,postgis自带)、address_standardizer_data_us(地址标准化示例数据集,可选,postgis自带)Extension。TIGER(Topologically Integrated Geographic Encoding And Reference,拓扑集成的地理编码和参考)是美国人口普查局的GIS开放数据,提供了美国全国的行政区划、交通道路、水系等空间数据。
· postgis_sfcgal:主要是集成了CGAL(Computational Geometry Algorithms Library,计算几何算法库),提供三维空间数据的空间运算;自行安装
· pgrouting:提供“路径规划”功能;自行安装
· ogr_fdw:利用OGR读取外部的GIS数据(例如Shepfile);自行安装
· pointcloud:点云数据支持,很火的无人驾驶有可能就用到了此技术;自行安装
· postgis安装完后提供的命令行工具有:pgsql2shp,raster2pgsql,shp2pgsql
5、相关工具:
· ArcGis,不支持高版本的PG
· SuperMap,国内,可以网络授权
· QGIS,开源,对标ArcGis
· GeoScene,利用ArcGis技术开发国内的GIS工具
· GDAL,栅格和矢量地理空间数据格式的转换库,还带有各种有用的命令行实用程序,用于数据转换和处理
· GeoServer,GIS WEB服务
标签:几何图形,简单,geometry,创建,几何,postgis,PostGIS,使用,TABLE From: https://blog.csdn.net/pg_hgdb/article/details/140460968