使用空间关系函数可以对几何体的空间关系进行判断。

  • ST_Contains:当g2的所有点都在g1的范围中,返回TRUE,否则返回FALSE。
  • ST_Crosses:当且仅当左几何体穿过右几何体时返回TRUE。
  • ST_Disjoint:当且仅当左几何体和右几何体的交集为空时返回TRUE。
  • ST_Equals:当且仅当左几何体等于右几何体时返回TRUE。
  • ST_Intersects:当且仅当左几何体与右几何体相交时返回 TRUE。
  • ST_Overlaps:当且仅当左几何体与右几何体重叠时返回TRUE。
  • ST_Relate:当且仅当左几何体与右几何体具有指定的尺寸扩展九交集模型 (TRUEDE-9IM) 关系时返回 。第三个 (varchar) 输入接受此关系。
  • ST_Touches:当且仅当左几何体与右几何体接触时返回TRUE。
  • ST_Within:当且仅当左几何体位于右几何体内时返回TRUE。

ST_Contains

ST_Contains(g1, g2)
  • 命令说明:当g2的所有点都在g1的范围中,返回TRUE,否则返回FALSE。
  • 返回值类型:Boolean。
  • 示例:
    SELECT ST_Contains(ST_GeometryFromText('POINT (20 20)'), ST_GeometryFromText('POINT (25 25)'));
    +----------------------------------------------------------------------------------------+
    |ST_Contains(ST_GeometryFromText('POINT (20 20)'), ST_GeometryFromText('POINT (25 25)')) |
    +----------------------------------------------------------------------------------------+
    |                        false                                                           |

ST_Crosses

ST_Crosses(g1, g2)
  • 命令说明:当且仅当左几何体穿过右几何体时返回TRUE。
  • 返回值类型:Boolean。
  • 示例:
    SELECT ST_Crosses(ST_GeometryFromText('POINT (20 20)'), ST_GeometryFromText('POINT (25 25)'))  +
    *----------------------------------------------------------------------------------------------+
    |ST_Crosses(ST_GeometryFromText('POINT (20 20)'), ST_GeometryFromText('POINT (25 25)'))        |
    +----------------------------------------------------------------------------------------------+   
    |               false                                                                          | 

ST_Disjoint

ST_Disjoint(g1, g2)
  • 命令说明:当且仅当左几何体和右几何体的交集为空时返回TRUE。
  • 返回值类型:Boolean。
  • 示例:
    SELECT ST_Disjoint(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))  +
    *--------------------------------------------------------------------------------------------------+
    |ST_Disjoint(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))        |
    +--------------------------------------------------------------------------------------------------+   
    |                 true                                                                             | 

ST_Equals

ST_Equals(g1, g2)
  • 命令说明:当且仅当左几何体等于右几何体时返回TRUE。
  • 返回值类型:Boolean。
  • 示例:
    SELECT ST_Equals(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))  +
    *--------------------------------------------------------------------------------------------------+
    |ST_Equals(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))        |
    +--------------------------------------------------------------------------------------------------+   
    |                 false                                                                             | 

ST_Intersects

ST_Intersects(g1, g2)
  • 命令说明:当且仅当左几何体与右几何体相交时返回TRUE。
  • 返回值类型:Boolean。
  • 示例:
    SELECT ST_Intersects(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))  +
    *----------------------------------------------------------------------------------------------------+
    |ST_Intersects(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))        |
    +----------------------------------------------------------------------------------------------------+   
    |                 false                                                                              | 

ST_Overlaps

ST_Overlaps(g1, g2)
  • 命令说明:当且仅当左几何体与右几何体重叠时返回TRUE。
  • 返回值类型:Boolean。
  • 示例:
    SELECT ST_Overlaps(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'), ST_GeometryFromText('POLYGON ((3 3, 3 5, 5 5, 5 3))'))  +
    *---------------------------------------------------------------------------------------------------------------------------------+
    |ST_Overlaps(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'), ST_GeometryFromText('POLYGON ((3 3, 3 5, 5 5, 5 3))'))        |
    +---------------------------------------------------------------------------------------------------------------------------------+   
    |                 true                                                                                                           | 

ST_Relate

ST_Relate(g1, g2, s1)
  • 命令说明:当且仅当左几何体与右几何体具有指定的尺寸扩展九交集模型 (TRUEDE-9IM) 关系时返回 。第三个 (varchar) 输入接受此关系。
  • 返回值类型:Boolean。
  • 示例:
    SELECT ST_Relate(ST_GeometryFromText('LINESTRING (0 0, 3 3)'), ST_GeometryFromText('LINESTRING (1 1, 4 1)'), '****T****')  +
    *--------------------------------------------------------------------------------------------------------------------------+
    |ST_Relate(ST_GeometryFromText('LINESTRING (0 0, 3 3)'), ST_GeometryFromText('LINESTRING (1 1, 4 1)'), '****T****')        |
    +--------------------------------------------------------------------------------------------------------------------------+   
    |                 false                                                                                                    | 

ST_Touches

ST_Touches(g1, g2)
  • 命令说明:当且仅当左几何体与右几何体接触时返回TRUE。
  • 返回值类型:Boolean。
  • 示例:
    SELECT ST_Touches(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))  +
    *-------------------------------------------------------------------------------------------------+
    |ST_Touches(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))        |
    +-------------------------------------------------------------------------------------------------+   
    |                 false                                                                           | 

ST_Within

ST_Within(g1, g2)
  • 命令说明:当且仅当左几何体位于右几何体内时返回TRUE。
  • 返回值类型:Boolean。
  • 示例:
    SELECT ST_Within(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))  +
    *-------------------------------------------------------------------------------------------------+
    |ST_Within(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))        |
    +-------------------------------------------------------------------------------------------------+   
    |                 false                                                                           |