使用操作函数可对geometry数据类型值执行操作。

  • ST_Intersection:返回g1与g2两个图对象的交集。
  • ST_Envelope:获取作为输入line、polygon、multiline和multipolygon geometry数据类型。不支持point geometry数据类型。返回一个信封的二进制表示,其中信封是一个围绕指定geometry数据类型的矩形。
  • ST_Union:返回表示指定几何体的点集并集的几何体数据类型。
  • geometry_union:返回表示指定几何体的点集并集的几何体数据类型。
  • ST_Boundary:采用一个geometry数据类型作为输入,并返回该boundary geometry数据类型的二进制表示。
  • ST_EnvelopeAsPts:返回两个点的数组,表示几何体的边界矩形多边形的左下角和右上角。如果指定的几何体为空,则返回null。
  • ST_Difference:返回左几何体和右几何体之间的差异的几何体。
  • ST_ExteriorRing:返回输入类型polygon的外部环的几何体。
  • ST_SymDifference:返回左几何体和右几何体之间的几何对称差异的几何体。

ST_Intersection

ST_Intersection(g1, g2)
  • 命令说明:返回g1与g2两个图对象的交集。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    SELECT ST_Intersection(ST_GeometryFromText('MULTIPOINT (50 100, 50 200)'), ST_GeometryFromText('Point (50 100)'));
    +------------------------------------------------------------------------------------------------------------+
    | ST_Intersection(ST_GeometryFromText('MULTIPOINT (50 100, 50 200)'), ST_GeometryFromText('Point (50 100)')) |
    +------------------------------------------------------------------------------------------------------------+
    |                         �?      �?                                                                         |
    SELECT ST_AsText(ST_Intersection(ST_GeometryFromText('MULTIPOINT (50 100, 50 200)'), ST_GeometryFromText('Point (50 100)')));
    +-----------------------------------------------------------------------------------------------------------------------+
    | ST_AsText(ST_Intersection(ST_GeometryFromText('MULTIPOINT (50 100, 50 200)'), ST_GeometryFromText('Point (50 100)'))) |
    +-----------------------------------------------------------------------------------------------------------------------+
    |                        POINT (50 100)                                                                                 |

ST_Envelope

ST_Envelope(g)
  • 命令说明:获取作为输入line、polygon、multiline和multipolygon geometry数据类型。不支持point geometry数据类型。返回一个信封的二进制表示,其中信封是一个围绕指定geometry数据类型的矩形。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    SELECT ST_AsText(ST_Envelope(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3)')))  +
    *---------------------------------------------------------------------------------+
    |ST_AsText(ST_Envelope(ST_GeometryFromText('LINESTRING (1 1, 2 2, 1 3)')))        |
    +---------------------------------------------------------------------------------+   
    |                POLYGON ((1 1, 2 1, 2 3, 1 3, 1 1))                                   | 
    SELECT ST_AsText(ST_Envelope(ST_GeometryFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)')));
    +-------------------------------------------------------------------------------+
    | ST_AsText(ST_Envelope(ST_GeometryFromText('MULTIPOINT (1 2, 2 4, 3 6, 4 8)')))|
    +-------------------------------------------------------------------------------+
    |                        POLYGON ((1 2, 4 2, 4 8, 1 8, 1 2))                    | 

ST_Union

ST_Union(g1, g2)
  • 命令说明:返回表示指定几何体的点集并集的几何体数据类型。
  • 返回值类型:int。
  • 示例:
    SELECT ST_ASText(ST_Union(ST_GeometryFromText('MULTIPOLYGON (((1 1, 3 1, 3 3, 1 3, 1 1)))'), ST_GeometryFromText('MULTIPOLYGON (((2 2, 4 2, 4 4, 2 4, 2 2)))')));
    +----------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | ST_ASText(ST_Union(ST_GeometryFromText('MULTIPOLYGON (((1 1, 3 1, 3 3, 1 3, 1 1)))'), ST_GeometryFromText('MULTIPOLYGON (((2 2, 4 2, 4 4, 2 4, 2 2)))')))      |
    +----------------------------------------------------------------------------------------------------------------------------------------------------------------+   
    |                                    POLYGON ((1 1, 3 1, 3 2, 4 2, 4 4, 2 4, 2 3, 1 3, 1 1))                                                                     | 

geometry_union

geometry_union(array[g1, g2, ...])
  • 命令说明:返回表示指定几何体的点集并集的几何体数据类型。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    SELECT geometry_union(ARRAY[ST_Point(61.56, -158.54), ST_Point(61.56, -158.55)]);
    +---------------------------------------------------------------------------------+
    |  geometry_union(ARRAY[ST_Point(61.56, -158.54), ST_Point(61.56, -158.55)])      |
    +---------------------------------------------------------------------------------+   
    |                   �?      �?                                                    | 

ST_Boundary

ST_Boundary(g)
  • 命令说明:采用一个geometry数据类型作为输入,并返回该boundary geometry数据类型的二进制表示。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    SELECT ST_AsText(ST_Boundary(ST_GeometryFromText('LINESTRING (8 4, 5 7)')))  +
    *----------------------------------------------------------------------------+
    |ST_AsText(ST_Boundary(ST_GeometryFromText('LINESTRING (8 4, 5 7)')))        |
    +----------------------------------------------------------------------------+   
    |                MULTIPOINT ((8 4), (5 7))                                   | 

ST_EnvelopeAsPts

ST_EnvelopeAsPts(g)
  • 命令说明:返回两个点的数组,表示几何体的边界矩形多边形的左下角和右上角。如果指定的几何体为空,则返回null。
  • 返回值类型:Array[Geometry]。
  • 示例:
    SELECT ST_EnvelopeAsPts(ST_GeometryFromText('LINESTRING EMPTY'))  +
    *-----------------------------------------------------------------+
    |ST_EnvelopeAsPts(ST_GeometryFromText('LINESTRING EMPTY'))        |
    +-----------------------------------------------------------------+   
    |                null                                             | 

ST_Difference

ST_EnvelopeAsPts(g1, g2)
  • 命令说明:返回左几何体和右几何体之间的差异的几何体。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    SELECT ST_AsText(ST_Difference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')))  +
    *---------------------------------------------------------------------------------------------------------------+
    |ST_AsText(ST_Difference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')))        |
    +---------------------------------------------------------------------------------------------------------------+   
    |                POINT (50 100)                                                                                 | 

ST_ExteriorRing

ST_ExteriorRing(g1)
  • 命令说明:返回输入类型polygon的外部环的几何体。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    SELECT ST_AsText(ST_ExteriorRing(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 1))')))  +
    *------------------------------------------------------------------------------------+
    |ST_AsText(ST_ExteriorRing(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 1))')))        |
    +------------------------------------------------------------------------------------+   
    |                LINESTRING (1 1, 4 1, 1 4, 1 1)                                     | 

ST_SymDifference

ST_SymDifference(g1, g2)
  • 命令说明:返回左几何体和右几何体之间的几何对称差异的几何体。
  • 返回值类型:GEOMETRY类型的对象,直接通过SELECT查询函数结果将显示乱码。
  • 示例:
    SELECT ST_AsText(ST_SymDifference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (50 150)')))  +
    *-----------------------------------------------------------------------------------------------------------------+
    |ST_AsText(ST_SymDifference(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (50 150)')))        |
    +-----------------------------------------------------------------------------------------------------------------+   
    |                MULTIPOINT ((50 100), (50 150))                                                                  |