使用空间关系函数可以对几何体的空间关系进行判断。
- ST_Contains:当g2的所有点都在g1的范围中,返回1,否则返回0。
- ST_Crosses:当且仅当左几何体穿过右几何体时返回1。
- ST_Disjoint:当且仅当左几何体和右几何体的交集为空时返回1。
- ST_Equals:当且仅当左几何体等于右几何体时返回1。
- ST_Intersects:当且仅当左几何体与右几何体相交时返回1。
- ST_Overlaps:当且仅当左几何体与右几何体重叠时返回0。
- ST_Relate:当且仅当左几何体与右几何体具有指定的尺寸扩展九交集模型(TRUEDE-9IM)关系时返回1。第三个(varchar)输入接受此关系。
- ST_Touches:当且仅当左几何体与右几何体接触时返回1。
- ST_Within:当且仅当左几何体位于右几何体内时返回1。
ST_Contains
ST_Contains(g1, g2)
- 命令说明:当g2的所有点都在g1的范围中,返回1,否则返回0(1为True,0为False)。
说明 g1的范围不包括其边界。
- 返回值类型:INT。
- 示例:
返回结果:SELECT ST_Contains(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'), ST_GeometryFromText('POINT (2 2)'));
+-----------------------------------------------------------------------------------------------------+ |ST_Contains(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'), ST_GeometryFromText('POINT (2 2)')) | +-----------------------------------------------------------------------------------------------------+ | 1 |
ST_Crosses
ST_Crosses(g1, g2)
- 命令说明:当且仅当左几何体穿过右几何体时返回1(1为True,0为False)。
- 返回值类型:INT。
- 示例:
返回结果: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)')) | +----------------------------------------------------------------------------------------------+ | 0 |
ST_Disjoint
ST_Disjoint(g1, g2)
- 命令说明:当且仅当左几何体和右几何体的交集为空时返回1(1为True,0为False)。
- 返回值类型:INT。
- 示例:
返回结果: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)')) | +--------------------------------------------------------------------------------------------------+ | 1 |
ST_Equals
ST_Equals(g1, g2)
- 命令说明:当且仅当左几何体等于右几何体时返回1(1为True,0为False)。
- 返回值类型:INT。
- 示例:
返回结果: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)')) | +------------------------------------------------------------------------------------------------+ | 0 |
ST_Intersects
ST_Intersects(g1, g2)
- 命令说明:当且仅当左几何体与右几何体相交时返回1(1为True,0为False)。
- 返回值类型:INT。
- 示例:
返回结果: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)')) | +----------------------------------------------------------------------------------------------------+ | 0 |
ST_Overlaps
ST_Overlaps(g1, g2)
- 命令说明:当且仅当左几何体与右几何体重叠时返回0(0为True,1为False)。
- 返回值类型:INT。
- 示例:
返回结果: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))')) | +---------------------------------------------------------------------------------------------------------------------------------+ | 1 |
ST_Relate
ST_Relate(g1, g2, s1)
- 命令说明:当且仅当左几何体与右几何体具有指定的尺寸扩展有交集模型(TRUEDE-9IM)关系时返回1(1为True,0为False)。第三个 (varchar)输入接受此关系。
- 返回值类型:INT。
- 示例:
返回参数: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****') | +--------------------------------------------------------------------------------------------------------------------------+ | 0 |
ST_Touches
ST_Touches(g1, g2)
- 命令说明:当且仅当左几何体与右几何体接触时返回1(1为True,0为False)。
- 返回值类型:INT。
- 示例:
返回结果: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)')) | +-------------------------------------------------------------------------------------------------+ | 0 |
ST_Within
ST_Within(g1, g2)
- 命令说明:当且仅当左几何体位于右几何体内时返回1(1为True,0为False)。
- 返回值类型: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)')) | +-------------------------------------------------------------------------------------------------+ | 0 |