PostGIS--介绍

Source


1、什么是PostGIS?

PostGIS通过增加对空间类型空间索引空间函数三个功能的支持,将PostgreSQL数据库管理系统转变为空间数据库。

2、数据

2.1 对象

2.1.1 读取几何元数据信息函数

  • ST_GeometryType(geometry) 返回几何图形的类型
  • ST_NDims(geometry) 返回几何图形的维数
  • ST_SRID(geometry) 返回几何体的空间参考标识符编号

2.1.2 处理点的函数

  • ST_X(geometry) 返回 X 纵坐标
  • ST_Y(geometry) 返回 Y 纵坐标

2.1.3 处理线的函数

  • ST_Length(geometry) 返回线串的长度
  • ST_StartPoint(geometry) 返回第一个坐标作为点
  • ST_EndPoint(geometry) 返回最后一个坐标作为点
  • ST_NPoints(geometry) 返回线串中的坐标数

2.1.4 处理面的函数

  • ST_Area(geometry) 返回多边形的面积
  • ST_NRings(geometry) 返回环数(通常为 1,如果有孔则更多)
  • ST_ExteriorRing(geometry) 以线串形式返回外环
  • ST_InteriorRingN(geometry,n) 以线串的形式返回指定的内环
  • ST_Perimeter(geometry) 返回所有环的长度

2.1.5 集合

  • MultiPoint,点的集合
  • MultiLineString,线串的集合
  • MultiPolygon,多边形的集合
  • GeometryCollection,任何几何图形(包括其他集合)的异构集合

用于处理集合的一些特定空间功能包括:

  • ST_NumGeometries(geometry) 返回集合中的零件数
  • ST_GeometryN(geometry,n) 返回指定的零件
  • ST_Area(geometry) 返回所有多边形零件的总面积
  • ST_Length(geometry) 返回所有线性零件的总长度

2.2 集合输入和输出

在数据库中,几何图形以仅供PostGIS程序使用的格式存储在磁盘上。为了让外部程序插入和检索有用的几何图形,需要将它们转换为其他应用程序可以理解的格式。幸运的是,PostGIS 支持以多种格式发射和使用几何图形:

  • 众所周知的文本(WKT)
    • ST_GeomFromText(text, srid) 返回geometry
    • ST_AsText(几何图形)返回text
    • ST_AsEWKT(geometry) 返回text
  • 众所周知的二进制文件(WKB)
    • ST_GeomFromWKB(bytea)返回geometry
    • ST_AsBinary(几何)返回bytea
    • ST_AsEWKB(几何图形)返回bytea
  • 地理标记语言 (GML))
    • ST_GeomFromGML(text) 返回geometry
    • ST_AsGML(几何图形)返回text
  • 锁孔标记语言 (KML))
    • ST_GeomFromKML(text) 返回geometry
    • ST_AsKML(geometry) 返回text
  • GeoJSON的
    • ST_AsGeoJSON(geometry) 返回text
  • 可缩放矢量图形 (SVG)
    • ST_AsSVG(geometry) 返回text

2.3 shapefile文件

Shapefile是一种空间数据文件格式,用于存储地理空间数据。一个Shapefile由一个主文件(.shp)和至少一个索引文件(.shx)以及一个 dBASE 表 (.dbf) 组成。可以包含其他辅助文件

  • .shp:包含地理空间数据的主体内容,使用特定的格式存储几何形状(点、线、多边形)。
  • .shx:索引信息
  • .dbf:包含与几何形状相关联的属性数据。
    在这里插入图片描述

总结

本文介绍了PostGIS,它通过支持空间类型、空间索引和空间函数,将PostgreSQL转变为空间数据库。文章详细列出了处理几何元数据、点、线和面的函数,包括获取几何类型、维数、坐标、长度、面积等功能。此外,介绍了几何集合的处理及其相关函数,如MultiPoint、MultiLineString和MultiPolygon等。

后续我会继续更新详细的PostGIS相关知识,包括不限于:空间、投影、地理、有效性等
大家也可以通过PostGIS官网学习:PostGIS官网

PS:

感谢您的阅读!如果您觉得本篇文章对您有所帮助,请给予博主一个赞喔~