第 7 章。PostGIS 参考

目录

以下给出的函数是 PostGIS 用户可能需要使用的函数。还有一些其他函数是 PostGIS 对象所需的支持函数,对普通用户没有用处。

[Note]

PostGIS 已经开始从现有的命名约定过渡到以 SQL-MM 为中心的约定。因此,您所熟悉和喜爱的大多数函数都已使用标准空间类型 (ST) 前缀重命名。以前的函数仍然可用,但在已更新的函数等效的情况下,本文档中未列出。本手册中未列出的非 ST_ 函数已被弃用,将在未来的版本中删除,因此请停止使用它们。

7.1. PostGIS 几何/地理/盒状数据类型

摘要

本节列出了 PostGIS 安装的自定义 PostgreSQL 数据类型,用于表示空间数据。

每个数据类型都描述了其类型转换行为。类型转换将一个数据类型的值转换为另一个类型。PostgreSQL 允许为自定义类型定义转换行为,以及用于转换类型值的函数。转换可以具有自动行为,允许将函数参数自动转换为函数支持的类型。

某些转换具有显式行为,这意味着必须使用 CAST(myval As sometype)myval::sometype 语法指定转换。显式转换避免了歧义转换的问题,当使用不支持给定类型的重载函数时,可能会发生这种情况。例如,一个函数可能接受 box2d 或 box3d,但不接受 geometry。由于 geometry 可以自动转换为两种 box 类型,这会产生“歧义函数”错误。为了防止错误,请使用显式转换到所需的 box 类型。

所有数据类型都可以转换为 text,因此无需显式指定。

  • box2d — 表示二维边界框的类型。
  • box3d — 表示三维边界框的类型。
  • geometry — 表示具有平面坐标系的空间要素的类型。
  • geometry_dump — 用于描述复杂几何图形的各个部分的复合类型。
  • geography — 表示具有大地(椭球)坐标系的空间要素的类型。

7.2. 表管理函数

摘要

这些函数有助于定义包含几何列的表。

7.3. 几何构造函数

  • ST_Collect — 从一组几何图形创建 GeometryCollection 或 Multi* 几何图形。
  • ST_LineFromMultiPoint — 从 MultiPoint 几何图形创建 LineString。
  • ST_MakeEnvelope — 从最小和最大坐标创建矩形 Polygon。
  • ST_MakeLine — 从 Point、MultiPoint 或 LineString 几何图形创建 LineString。
  • ST_MakePoint — 创建 2D、3DZ 或 4D Point。
  • ST_MakePointM — 从 X、Y 和 M 值创建 Point。
  • ST_MakePolygon — 从外壳和可选的孔列表创建 Polygon。
  • ST_Point — 使用 X、Y 和 SRID 值创建 Point。
  • ST_PointZ — 使用 X、Y、Z 和 SRID 值创建 Point。
  • ST_PointM — 使用 X、Y、M 和 SRID 值创建 Point。
  • ST_PointZM — 使用 X、Y、Z、M 和 SRID 值创建 Point。
  • ST_Polygon — 从具有指定 SRID 的 LineString 创建 Polygon。
  • ST_TileEnvelope — 使用 XYZ 切片系统在 Web Mercator (SRID:3857) 中创建矩形 Polygon。
  • ST_HexagonGrid — 返回一组六边形和单元格索引,它们完全覆盖几何图形参数的边界。
  • ST_Hexagon — 返回单个六边形,使用提供的边长和六边形网格空间内的单元格坐标。
  • ST_SquareGrid — 返回一组网格正方形和单元格索引,它们完全覆盖几何图形参数的边界。
  • ST_Square — 返回单个正方形,使用提供的边长和正方形网格空间内的单元格坐标。
  • ST_Letters — 返回以几何图形呈现的输入字母,默认起始位置在原点,默认文本高度为 100。

7.4. 几何访问器

  • GeometryType — 以文本形式返回几何图形的类型。
  • ST_Boundary — 返回几何图形的边界。
  • ST_BoundingDiagonal — 返回几何图形边界框的对角线。
  • ST_CoordDim — 返回几何图形的坐标维度。
  • ST_Dimension — 返回几何图形的拓扑维度。
  • ST_Dump — 返回几何图形组件的 geometry_dump 行集。
  • ST_DumpPoints — 返回几何图形中坐标的 geometry_dump 行集。
  • ST_DumpSegments — 返回几何图形中线段的 geometry_dump 行集。
  • ST_DumpRings — 返回 Polygon 的外部和内部环的 geometry_dump 行集。
  • ST_EndPoint — 返回 LineString 或 CircularLineString 的最后一个点。
  • ST_Envelope — 返回表示几何图形边界框的几何图形。
  • ST_ExteriorRing — 返回表示 Polygon 的外部环的 LineString。
  • ST_GeometryN — 返回几何图形集合的元素。
  • ST_GeometryType — 以文本形式返回几何图形的 SQL-MM 类型。
  • ST_HasArc — 测试几何图形是否包含圆弧
  • ST_InteriorRingN — 返回 Polygon 的第 N 个内部环(孔)。
  • ST_NumCurves — 返回 CompoundCurve 中的组件曲线数量。
  • ST_CurveN — 返回 CompoundCurve 的第 N 个组件曲线几何图形。
  • ST_IsClosed — 测试 LineString 的起点和终点是否重合。对于 PolyhedralSurface,测试它是否闭合(体积)。
  • ST_IsCollection — 测试几何图形是否为几何图形集合类型。
  • ST_IsEmpty — 测试几何图形是否为空。
  • ST_IsPolygonCCW — 测试 Polygon 的外部环是否为逆时针方向,内部环是否为顺时针方向。
  • ST_IsPolygonCW — 测试 Polygon 的外部环是否为顺时针方向,内部环是否为逆时针方向。
  • ST_IsRing — 测试 LineString 是否闭合且简单。
  • ST_IsSimple — 测试几何图形是否没有自相交或自相切的点。
  • ST_M — 返回 Point 的 M 坐标。
  • ST_MemSize — 返回几何图形占用的内存空间量。
  • ST_NDims — 返回几何图形的坐标维度。
  • ST_NPoints — 返回几何图形中的点(顶点)的数量。
  • ST_NRings — 返回多边形几何图形中的环数。
  • ST_NumGeometries — 返回几何图形集合中的元素数量。
  • ST_NumInteriorRings — 返回 Polygon 的内部环(孔)的数量。
  • ST_NumInteriorRing — 返回多边形的内部环(孔)的数量。是 ST_NumInteriorRings 的别名。
  • ST_NumPatches — 返回多面体曲面上的面数。对于非多面体几何图形,将返回 null。
  • ST_NumPoints — 返回 LineString 或 CircularString 中的点数。
  • ST_PatchN — 返回多面体曲面的第 N 个几何图形(面)。
  • ST_PointN — 返回几何图形中第一个 LineString 或圆形 LineString 的第 N 个点。
  • ST_Points — 返回包含几何图形坐标的 MultiPoint。
  • ST_StartPoint — 返回 LineString 的第一个点。
  • ST_Summary — 返回几何图形内容的文本摘要。
  • ST_X — 返回 Point 的 X 坐标。
  • ST_Y — 返回 Point 的 Y 坐标。
  • ST_Z — 返回 Point 的 Z 坐标。
  • ST_Zmflag — 返回一个代码,指示几何图形的 ZM 坐标维度。
  • ST_HasZ — 检查几何图形是否具有 Z 维度。
  • ST_HasM — 检查几何图形是否具有 M(度量)维度。

7.5. 几何编辑器

摘要

这些函数通过更改类型、结构或顶点来创建修改后的几何图形。

  • ST_AddPoint — 向 LineString 添加一个点。
  • ST_CollectionExtract — 给定一个几何图形集合,返回一个仅包含指定类型元素的多几何图形。
  • ST_CollectionHomogenize — 返回几何图形集合的最简单表示形式。
  • ST_CurveToLine — 将包含曲线的几何图形转换为线性几何图形。
  • ST_Scroll — 更改闭合 LineString 的起始点。
  • ST_FlipCoordinates — 返回一个 X 轴和 Y 轴翻转的几何图形版本。
  • ST_Force2D — 将几何图形强制转换为“二维模式”。
  • ST_Force3D — 将几何图形强制转换为 XYZ 模式。这是 ST_Force3DZ 的别名。
  • ST_Force3DZ — 将几何图形强制转换为 XYZ 模式。
  • ST_Force3DM — 将几何图形强制转换为 XYM 模式。
  • ST_Force4D — 将几何图形强制转换为 XYZM 模式。
  • ST_ForceCollection — 将几何图形转换为 GEOMETRYCOLLECTION。
  • ST_ForceCurve — 如果适用,则将几何图形向上转换为其曲线类型。
  • ST_ForcePolygonCCW — 将所有外部环设置为逆时针方向,将所有内部环设置为顺时针方向。
  • ST_ForcePolygonCW — 将所有外部环设置为顺时针方向,将所有内部环设置为逆时针方向。
  • ST_ForceSFS — 强制几何图形仅使用 SFS 1.1 几何图形类型。
  • ST_ForceRHR — 强制多边形中的顶点方向遵循右手规则。
  • ST_LineExtend — 返回向前和向后延伸指定距离的线。
  • ST_LineToCurve — 将线性几何图形转换为曲线几何图形。
  • ST_Multi — 将几何图形作为 MULTI* 几何图形返回。
  • ST_Normalize — 以规范形式返回几何图形。
  • ST_Project — 返回从起始点以距离和方位角(方位)投影的点。
  • ST_QuantizeCoordinates — 将坐标的最低有效位设置为零。
  • ST_RemovePoint — 从线串中删除一个点。
  • ST_RemoveRepeatedPoints — 返回一个删除了重复点的几何图形版本。
  • ST_RemoveIrrelevantPointsForView — 删除对于渲染几何图形的特定矩形视图不相关的点。
  • ST_RemoveSmallParts — 删除几何图形的小部分(多边形环或线串)。
  • ST_Reverse — 返回顶点顺序颠倒的几何图形。
  • ST_Segmentize — 返回一个修改后的几何图形/地理图形,其任何线段的长度都不超过给定距离。
  • ST_SetPoint — 将线串的点替换为给定的点。
  • ST_ShiftLongitude — 将几何图形的经度坐标在 -180..180 和 0..360 之间移动。
  • ST_WrapX — 将几何图形围绕 X 值包裹。
  • ST_SnapToGrid — 将输入几何图形的所有点捕捉到规则网格。
  • ST_Snap — 将输入几何图形的线段和顶点捕捉到参考几何图形的顶点。
  • ST_SwapOrdinates — 返回一个交换了给定纵坐标值的给定几何图形的版本。

7.6. 几何验证

摘要

这些函数测试几何图形是否根据 OGC SFS 标准有效。它们还提供有关无效的性质和位置的信息。还有一个函数可以从无效的几何图形创建有效的几何图形。

  • ST_IsValid — 测试几何图形在 2D 中是否结构良好。
  • ST_IsValidDetail — 返回一个 valid_detail 行,说明几何图形是否有效,如果无效,则说明原因和位置。
  • ST_IsValidReason — 返回文本,说明几何图形是否有效,或者说明无效的原因。
  • ST_MakeValid — 尝试在不丢失顶点的情况下使无效的几何图形有效。

7.7. 空间参考系统函数

摘要

这些函数使用 spatial_ref_sys 表中定义的几何图形的空间参考系统。

  • ST_InverseTransformPipeline — 返回一个新的几何图形,其坐标使用定义的坐标转换管道的逆变换转换为不同的空间参考系统。
  • ST_SetSRID — 在几何图形上设置 SRID。
  • ST_SRID — 返回几何图形的空间参考标识符。
  • ST_Transform — 返回一个新的几何图形,其坐标已转换为不同的空间参考系统。
  • ST_TransformPipeline — 返回一个新的几何图形,其坐标使用定义的坐标转换管道转换为不同的空间参考系统。
  • postgis_srs_codes — 返回与给定机构关联的 SRS 代码列表。
  • postgis_srs — 返回请求的机构和 srid 的元数据记录。
  • postgis_srs_all — 返回底层 Proj 数据库中每个空间参考系统的元数据记录。
  • postgis_srs_search — 返回使用区域完全包含 bounds 参数的投影坐标系统的元数据记录。

7.8. 几何输入

摘要

这些函数从各种文本或二进制格式创建几何对象。

7.8.1. 众所周知的文本 (WKT)

  • ST_BdPolyFromText — 给定任意闭合线串集合作为 MultiLineString 众所周知的文本表示形式,构造一个多边形。
  • ST_BdMPolyFromText — 给定任意闭合线串集合作为 MultiLineString 文本表示形式(众所周知的文本表示形式),构造一个多多边形。
  • ST_GeogFromText — 从众所周知的文本表示形式或扩展的 (WKT) 返回指定的地理值。
  • ST_GeographyFromText — 从众所周知的文本表示形式或扩展的 (WKT) 返回指定的地理值。
  • ST_GeomCollFromText — 从带有给定 SRID 的集合 WKT 创建集合几何图形。如果未给出 SRID,则默认为 0。
  • ST_GeomFromEWKT — 从扩展的众所周知的文本表示形式 (EWKT) 返回指定的 ST_Geometry 值。
  • ST_GeomFromMARC21 — 将 MARC21/XML 地理数据作为输入,并返回 PostGIS 几何对象。
  • ST_GeometryFromText — 从众所周知的文本表示 (WKT) 返回指定的 ST_Geometry 值。这是 ST_GeomFromText 的别名。
  • ST_GeomFromText — 从众所周知的文本表示 (WKT) 返回指定的 ST_Geometry 值。
  • ST_LineFromText — 使用给定的 SRID 从 WKT 表示创建几何图形。如果未提供 SRID,则默认为 0。
  • ST_MLineFromText — 从 WKT 表示返回指定的 ST_MultiLineString 值。
  • ST_MPointFromText — 使用给定的 SRID 从 WKT 创建几何图形。如果未提供 SRID,则默认为 0。
  • ST_MPolyFromText — 使用给定的 SRID 从 WKT 创建 MultiPolygon 几何图形。如果未提供 SRID,则默认为 0。
  • ST_PointFromText — 使用给定的 SRID 从 WKT 创建点几何图形。如果未提供 SRID,则默认为未知。
  • ST_PolygonFromText — 使用给定的 SRID 从 WKT 创建几何图形。如果未提供 SRID,则默认为 0。
  • ST_WKTToSQL — 从众所周知的文本表示 (WKT) 返回指定的 ST_Geometry 值。这是 ST_GeomFromText 的别名。

7.8.2. 众所周知的二进制 (WKB)

  • ST_GeogFromWKB — 从众所周知的二进制几何表示 (WKB) 或扩展的众所周知的二进制 (EWKB) 创建地理实例。
  • ST_GeomFromEWKB — 从扩展的众所周知的二进制表示 (EWKB) 返回指定的 ST_Geometry 值。
  • ST_GeomFromWKB — 从众所周知的二进制几何表示 (WKB) 和可选的 SRID 创建几何实例。
  • ST_LineFromWKB — 使用给定的 SRID 从 WKB 创建 LINESTRING
  • ST_LinestringFromWKB — 使用给定的 SRID 从 WKB 创建几何图形。
  • ST_PointFromWKB — 使用给定的 SRID 从 WKB 创建几何图形。
  • ST_WKBToSQL — 从众所周知的二进制表示 (WKB) 返回指定的 ST_Geometry 值。这是不带 srid 的 ST_GeomFromWKB 的别名。

7.8.3. 其他格式

7.9. 几何图形输出

摘要

这些函数将几何对象转换为各种文本或二进制格式。

7.9.1. 众所周知的文本 (WKT)

  • ST_AsEWKT — 返回带有 SRID 元数据的几何图形的众所周知的文本 (WKT) 表示。
  • ST_AsText — 返回不带 SRID 元数据的几何/地理的众所周知的文本 (WKT) 表示。

7.9.2. 众所周知的二进制 (WKB)

  • ST_AsBinary — 返回不带 SRID 元数据的几何/地理的 OGC/ISO 众所周知的二进制 (WKB) 表示。
  • ST_AsEWKB — 返回带有 SRID 元数据的几何图形的扩展众所周知的二进制 (EWKB) 表示。
  • ST_AsHEXEWKB — 使用小端 (NDR) 或大端 (XDR) 编码,以 HEXEWKB 格式(作为文本)返回几何图形。

7.9.3. 其他格式

  • ST_AsEncodedPolyline — 从 LineString 几何图形返回编码的折线。
  • ST_AsFlatGeobuf — 返回一组行的 FlatGeobuf 表示。
  • ST_AsGeobuf — 返回一组行的 Geobuf 表示。
  • ST_AsGeoJSON — 返回 GeoJSON 格式的几何图形或要素。
  • ST_AsGML — 将几何图形作为 GML 版本 2 或 3 元素返回。
  • ST_AsKML — 将几何图形作为 KML 元素返回。
  • ST_AsLatLonText — 返回给定点的度、分、秒表示。
  • ST_AsMARC21 — 将几何图形作为带有地理数据字段 (034) 的 MARC21/XML 记录返回。
  • ST_AsMVTGeom — 将几何图形转换为 MVT 切片的坐标空间。
  • ST_AsMVT — 聚合函数,返回一组行的 MVT 表示。
  • ST_AsSVG — 返回几何图形的 SVG 路径数据。
  • ST_AsTWKB — 将几何图形作为 TWKB 返回,又名“微型众所周知的二进制”。
  • ST_AsX3D — 以 X3D xml 节点元素格式返回几何图形:ISO-IEC-19776-1.2-X3DEncodings-XML。
  • ST_GeoHash — 返回几何图形的 GeoHash 表示。

7.10. 运算符

7.10.1. 边界框运算符

  • && — 如果 A 的 2D 边界框与 B 的 2D 边界框相交,则返回 TRUE
  • &&(geometry,box2df) — 如果几何图形的(缓存的)2D 边界框与 2D 浮点精度边界框 (BOX2DF) 相交,则返回 TRUE
  • &&(box2df,geometry) — 如果 2D 浮点精度边界框 (BOX2DF) 与几何图形的(缓存的)2D 边界框相交,则返回 TRUE
  • &&(box2df,box2df) — 如果两个 2D 浮点精度边界框 (BOX2DF) 彼此相交,则返回 TRUE
  • &&& — 如果 A 的 n-D 边界框与 B 的 n-D 边界框相交,则返回 TRUE
  • &&&(geometry,gidx) — 如果几何图形的(缓存的)n-D 边界框与 n-D 浮点精度边界框 (GIDX) 相交,则返回 TRUE
  • &&&(gidx,geometry) — 如果 n-D 浮点精度边界框 (GIDX) 与几何图形的(缓存的)n-D 边界框相交,则返回 TRUE
  • &&&(gidx,gidx) — 如果两个 n-D 浮点精度边界框 (GIDX) 彼此相交,则返回 TRUE
  • &< — 如果 A 的边界框与 B 的边界框重叠或位于 B 的左侧,则返回 TRUE
  • &<| — 如果 A 的边界框与 B 的边界框重叠或位于 B 的下方,则返回 TRUE
  • &> — 如果 A 的边界框与 B 的边界框重叠或位于 B 的右侧,则返回 TRUE
  • << — 如果 A 的边界框严格位于 B 的左侧,则返回 TRUE
  • <<| — 如果 A 的边界框严格位于 B 的下方,则返回 TRUE
  • = — 如果几何/地理 A 的坐标和坐标顺序与几何/地理 B 的坐标和坐标顺序相同,则返回 TRUE
  • >> — 如果 A 的边界框严格位于 B 的右侧,则返回 TRUE
  • @ — 如果 A 的边界框被 B 的边界框包含,则返回 TRUE
  • @(geometry,box2df) — 如果几何体的 2D 边界框包含在 2D 浮点精度边界框 (BOX2DF) 中,则返回 TRUE
  • @(box2df,geometry) — 如果 2D 浮点精度边界框 (BOX2DF) 包含在几何体的 2D 边界框中,则返回 TRUE
  • @(box2df,box2df) — 如果一个 2D 浮点精度边界框 (BOX2DF) 包含在另一个 2D 浮点精度边界框中,则返回 TRUE
  • |&> — 如果 A 的边界框与 B 的边界框重叠或位于其上方,则返回 TRUE
  • |>> — 如果 A 的边界框严格位于 B 的上方,则返回 TRUE
  • ~ — 如果 A 的边界框包含 B 的边界框,则返回 TRUE
  • ~(geometry,box2df) — 如果几何体的 2D 边界框包含 2D 浮点精度边界框 (GIDX),则返回 TRUE
  • ~(box2df,geometry) — 如果 2D 浮点精度边界框 (BOX2DF) 包含几何体的 2D 边界框,则返回 TRUE
  • ~(box2df,box2df) — 如果一个 2D 浮点精度边界框 (BOX2DF) 包含另一个 2D 浮点精度边界框 (BOX2DF),则返回 TRUE
  • ~= — 如果 A 的边界框与 B 的边界框相同,则返回 TRUE

7.10.2. 距离运算符

  • <-> — 返回 A 和 B 之间的 2D 距离。
  • |=| — 返回 A 和 B 轨迹在其最接近点处的距离。
  • <#> — 返回 A 和 B 边界框之间的 2D 距离。
  • <<->> — 返回 A 和 B 几何体或边界框之间的 n 维距离。

7.11. 空间关系

摘要

这些函数确定几何体之间的空间关系。

7.11.1. 拓扑关系

  • ST_3DIntersects — 测试两个几何体是否在 3D 空间中相交 - 仅适用于点、线串、多边形、多面体表面(区域)。
  • ST_Contains — 测试 B 的每个点是否位于 A 中,并且它们的内部有公共点。
  • ST_ContainsProperly — 测试 B 的每个点是否位于 A 的内部。
  • ST_CoveredBy — 测试 A 的每个点是否位于 B 中。
  • ST_Covers — 测试 B 的每个点是否位于 A 中。
  • ST_Crosses — 测试两个几何体是否有一些但不是全部内部公共点。
  • ST_Disjoint — 测试两个几何体是否没有公共点。
  • ST_Equals — 测试两个几何体是否包含相同的点集。
  • ST_Intersects — 测试两个几何体是否相交(它们至少有一个公共点)。
  • ST_LineCrossingDirection — 返回一个数字,指示两个 LineString 的交叉行为。
  • ST_OrderingEquals — 测试两个几何体是否表示相同的几何体并且点在相同的方向顺序中。
  • ST_Overlaps — 测试两个几何体是否具有相同的维度并相交,但每个几何体至少有一个点不在另一个几何体中。
  • ST_Relate — 测试两个几何体的拓扑关系是否与交集矩阵模式匹配,或计算它们的交集矩阵。
  • ST_RelateMatch — 测试 DE-9IM 交集矩阵是否与交集矩阵模式匹配。
  • ST_Touches — 测试两个几何体是否至少有一个公共点,但它们的内部不相交。
  • ST_Within — 测试 A 的每个点是否位于 B 中,并且它们的内部有公共点。

7.11.2. 距离关系

  • ST_3DDWithin — 测试两个 3D 几何体是否在给定的 3D 距离内。
  • ST_3DDFullyWithin — 测试两个 3D 几何体是否完全在给定的 3D 距离内。
  • ST_DFullyWithin — 测试一个几何体是否完全在另一个几何体的距离内。
  • ST_DWithin — 测试两个几何体是否在给定的距离内。
  • ST_PointInsideCircle — 测试点几何体是否位于由中心和半径定义的圆内。

7.12. 测量函数

摘要

这些函数计算距离、面积和角度的测量值。还有一些函数可以计算由测量值确定的几何值。

  • ST_Area — 返回多边形几何体的面积。
  • ST_Azimuth — 返回两点之间线的基于北方的方位角。
  • ST_Angle — 返回由 3 个或 4 个点或 2 条线定义的两个向量之间的角度。
  • ST_ClosestPoint — 返回 g1 上最接近 g2 的 2D 点。这是从一个几何体到另一个几何体的最短线上的第一个点。
  • ST_3DClosestPoint — 返回 g1 上最接近 g2 的 3D 点。这是 3D 最短线上的第一个点。
  • ST_Distance — 返回两个几何或地理值之间的距离。
  • ST_3DDistance — 返回两个投影单位几何体之间基于空间参考的 3D 笛卡尔最小距离。
  • ST_DistanceSphere — 使用球面地球模型返回两个经纬度几何体之间的最小距离(以米为单位)。
  • ST_DistanceSpheroid — 使用椭球地球模型返回两个经纬度几何体之间的最小距离。
  • ST_FrechetDistance — 返回两个几何体之间的 Fréchet 距离。
  • ST_HausdorffDistance — 返回两个几何体之间的 Hausdorff 距离。
  • ST_Length — 返回线性几何体的 2D 长度。
  • ST_Length2D — 返回线性几何体的 2D 长度。是 ST_Length 的别名。
  • ST_3DLength — 返回线性几何体的 3D 长度。
  • ST_LengthSpheroid — 返回椭球体上经纬度几何体的 2D 或 3D 长度/周长。
  • ST_LongestLine — 返回两个几何体之间最长的 2D 线。
  • ST_3DLongestLine — 返回两个几何体之间最长的 3D 线。
  • ST_MaxDistance — 返回两个投影单位几何体之间最大的 2D 距离。
  • ST_3DMaxDistance — 返回两个投影单位几何体之间基于空间参考的 3D 笛卡尔最大距离。
  • ST_MinimumClearance — 返回几何体的最小间隙,这是衡量几何体稳健性的指标。
  • ST_MinimumClearanceLine — 返回跨越几何图形最小间隙的两点 LineString。
  • ST_Perimeter — 返回多边形几何或地理的边界长度。
  • ST_Perimeter2D — 返回多边形几何的 2D 周长。是 ST_Perimeter 的别名。
  • ST_3DPerimeter — 返回多边形几何的 3D 周长。
  • ST_ShortestLine — 返回两个几何图形之间的 2D 最短线。
  • ST_3DShortestLine — 返回两个几何图形之间的 3D 最短线。

7.13. 叠加函数

摘要

这些函数计算由两个几何图形叠加产生的结果。这些函数也被称为点集理论布尔运算。同时还提供一些相关的函数。

  • ST_ClipByBox2D — 计算几何图形落在矩形内的部分。
  • ST_Difference — 计算一个几何图形,表示几何 A 中不与几何 B 相交的部分。
  • ST_Intersection — 计算一个几何图形,表示几何 A 和 B 的共享部分。
  • ST_MemUnion — 聚合函数,以内存高效但较慢的方式联合几何图形。
  • ST_Node — 对线集合进行节点化。
  • ST_Split — 返回通过另一个几何图形分割一个几何图形而创建的几何图形集合。
  • ST_Subdivide — 计算几何图形的直线细分。
  • ST_SymDifference — 计算一个几何图形,表示几何 A 和 B 中不相交的部分。
  • ST_UnaryUnion — 计算单个几何图形组件的联合。
  • ST_Union — 计算一个几何图形,表示输入几何图形的点集联合。

7.14. 几何处理

摘要

这些函数计算几何构造,或改变几何图形的大小或形状。

7.15. 覆盖

摘要

这些函数操作形成“隐式覆盖”的多边形几何图形集。为了形成有效的覆盖,多边形不得重叠,并且相邻边的顶点必须完全匹配。覆盖处理速度很快,可以使用窗口函数进行操作,窗口函数在改变边缘的同时保留窗口分区内的覆盖拓扑。

7.16. 仿射变换

摘要

这些函数使用 仿射变换 更改几何图形的位置和形状。

  • ST_Affine — 将 3D 仿射变换应用于几何图形。
  • ST_Rotate — 绕原点旋转几何图形。
  • ST_RotateX — 绕 X 轴旋转几何图形。
  • ST_RotateY — 绕 Y 轴旋转几何图形。
  • ST_RotateZ — 绕 Z 轴旋转几何图形。
  • ST_Scale — 按给定的因子缩放几何图形。
  • ST_Translate — 按给定的偏移量平移几何图形。
  • ST_TransScale — 按给定的偏移量和平移缩放几何图形。

7.17. 聚类函数

摘要

这些函数为几何图形集实现聚类算法。

  • ST_ClusterDBSCAN — 窗口函数,使用 DBSCAN 算法为每个输入几何图形返回一个聚类 ID。
  • ST_ClusterIntersecting — 聚合函数,将输入几何图形聚类为连接的集合。
  • ST_ClusterIntersectingWin — 窗口函数,为每个输入几何图形返回一个聚类 ID,将输入几何图形聚类为连接的集合。
  • ST_ClusterKMeans — 窗口函数,使用 K 均值算法为每个输入几何图形返回一个聚类 ID。
  • ST_ClusterWithin — 聚合函数,按分离距离聚类几何图形。
  • ST_ClusterWithinWin — 窗口函数,为每个输入几何图形返回一个聚类 ID,使用分离距离进行聚类。

7.18. 边界框函数

摘要

这些函数生成边界框或对其进行操作。它们还可以通过使用自动或显式转换来提供和接受几何图形值。

另请参阅 第 13.7 节,“PostGIS 边界框函数”

  • Box2D — 返回表示几何图形二维范围的 BOX2D。
  • Box3D — 返回表示几何图形三维范围的 BOX3D。
  • ST_EstimatedExtent — 返回空间表的估计范围。
  • ST_Expand — 返回从另一个边界框或几何图形扩展的边界框。
  • ST_Extent — 返回几何图形的边界框的聚合函数。
  • ST_3DExtent — 返回几何图形的 3D 边界框的聚合函数。
  • ST_MakeBox2D — 创建由两个二维点几何图形定义的 BOX2D。
  • ST_3DMakeBox — 创建由两个三维点几何图形定义的 BOX3D。
  • ST_XMax — 返回二维或三维边界框或几何图形的 X 最大值。
  • ST_XMin — 返回二维或三维边界框或几何图形的 X 最小值。
  • ST_YMax — 返回二维或三维边界框或几何图形的 Y 最大值。
  • ST_YMin — 返回二维或三维边界框或几何图形的 Y 最小值。
  • ST_ZMax — 返回二维或三维边界框或几何图形的 Z 最大值。
  • ST_ZMin — 返回二维或三维边界框或几何图形的 Z 最小值。

7.19. 线性参考

7.20. 轨迹函数

摘要

这些函数支持处理轨迹。轨迹是指每个坐标上具有递增的测量值(M 值)的线性几何图形。可以使用相对时间(例如纪元)作为测量值来对时空数据建模。

7.21. 版本函数

摘要

这些函数报告和升级 PostGIS 版本。

7.22. 全局统一自定义变量 (GUC)

摘要

本节列出自定义 PostGIS 全局统一自定义变量 (GUC)。这些变量可以全局设置、按数据库设置、按会话设置或按事务设置。最好在全局或数据库级别设置。

有关更多用法示例,请参阅 SQL SETSQL ALTER SYSTEM

  • postgis.backend — 在 GEOS 和 SFCGAL 重叠时,用于服务函数的后端。选项:geos 或 sfcgal。默认为 geos。
  • postgis.gdal_datapath — 用于分配 GDAL 的 GDAL_DATA 选项值的配置选项。如果未设置,则使用环境变量中设置的 GDAL_DATA 变量。
  • postgis.gdal_enabled_drivers — 用于在 PostGIS 环境中设置启用的 GDAL 驱动程序的配置选项。影响 GDAL 配置变量 GDAL_SKIP。
  • postgis.enable_outdb_rasters — 用于启用对外部数据库栅格波段的访问的布尔配置选项。
  • postgis.gdal_vsi_options — 用于设置处理外部数据库栅格时使用的选项的字符串配置。

7.23. 故障排除函数

摘要

这些函数是用于故障排除和修复几何数据的实用工具。只有在几何数据以某种方式损坏时才需要它们,正常情况下绝不应该发生这种情况。