• PostGIS简单使用


    瀚高数据库
    目录
    环境
    文档用途
    详细信息

    环境
    系统平台: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)
    
      );
    
    30054326都是坐标系代码,不指定会默认给一个坐标系,一般是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服务

  • 相关阅读:
    魅族回应被吉利收购:已签署协议;腾讯下架QQ影音所有版本;PyPI多个软件包因拼写错误包含后门|极客头条
    Java实现在线SQL编程【完整版】
    Rust星号(*)的作用-基础篇
    Abbkine ExKine总蛋白提取试剂盒的适用性和特点介绍
    数据可视化
    unittest单元测试框架使用
    Java ArrayList扩容机制
    1.3 Linux目录操作
    请问一下出现这种错误怎么解决呢(标签-xml)
    shell脚本学习
  • 原文地址:https://blog.csdn.net/pg_hgdb/article/details/140460968