空間關(guān)系函數(shù)
使用空間關(guān)系函數(shù)可以對(duì)幾何體的空間關(guān)系進(jìn)行判斷。
ST_Contains:當(dāng)g2的所有點(diǎn)都在g1的范圍中,返回1,否則返回0。
ST_Crosses:當(dāng)且僅當(dāng)左幾何體穿過(guò)右?guī)缀误w時(shí)返回1。
ST_Disjoint:當(dāng)且僅當(dāng)左幾何體和右?guī)缀误w的交集為空時(shí)返回1。
ST_Equals:當(dāng)且僅當(dāng)左幾何體等于右?guī)缀误w時(shí)返回1。
ST_Intersects:當(dāng)且僅當(dāng)左幾何體與右?guī)缀误w相交時(shí)返回1。
ST_Overlaps:當(dāng)且僅當(dāng)左幾何體與右?guī)缀误w重疊時(shí)返回0。
ST_Relate:當(dāng)且僅當(dāng)左幾何體與右?guī)缀误w具有指定的尺寸擴(kuò)展九交集模型(TRUEDE-9IM)關(guān)系時(shí)返回1。第三個(gè)(varchar)輸入接受此關(guān)系。
ST_Touches:當(dāng)且僅當(dāng)左幾何體與右?guī)缀误w接觸時(shí)返回1。
ST_Within:當(dāng)且僅當(dāng)左幾何體位于右?guī)缀误w內(nèi)時(shí)返回1。
ST_Contains
ST_Contains(g1, g2)
命令說(shuō)明:當(dāng)g2的所有點(diǎn)都在g1的范圍中,返回1,否則返回0(1為T(mén)rue,0為False)。
說(shuō)明g1的范圍不包括其邊界。
返回值類型:INT。
示例:
SELECT ST_Contains(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4, 4 1))'), ST_GeometryFromText('POINT (2 2)'));
返回結(jié)果:
+-----------------------------------------------------------------------------------------------------+ |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)
命令說(shuō)明:當(dāng)且僅當(dāng)左幾何體穿過(guò)右?guī)缀误w時(shí)返回1(1為T(mén)rue,0為False)。
返回值類型:INT。
示例:
SELECT ST_Crosses(ST_GeometryFromText('POINT (20 20)'), ST_GeometryFromText('POINT (25 25)'));
返回結(jié)果:
+----------------------------------------------------------------------------------------------+ |ST_Crosses(ST_GeometryFromText('POINT (20 20)'), ST_GeometryFromText('POINT (25 25)')) | +----------------------------------------------------------------------------------------------+ | 0 |
ST_Disjoint
ST_Disjoint(g1, g2)
命令說(shuō)明:當(dāng)且僅當(dāng)左幾何體和右?guī)缀误w的交集為空時(shí)返回1(1為T(mén)rue,0為False)。
返回值類型:INT。
示例:
SELECT ST_Disjoint(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'));
返回結(jié)果:
+--------------------------------------------------------------------------------------------------+ |ST_Disjoint(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')) | +--------------------------------------------------------------------------------------------------+ | 1 |
ST_Equals
ST_Equals(g1, g2)
命令說(shuō)明:當(dāng)且僅當(dāng)左幾何體等于右?guī)缀误w時(shí)返回1(1為T(mén)rue,0為False)。
返回值類型:INT。
示例:
SELECT ST_Equals(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'));
返回結(jié)果:
+------------------------------------------------------------------------------------------------+ |ST_Equals(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')) | +------------------------------------------------------------------------------------------------+ | 0 |
ST_Intersects
ST_Intersects(g1, g2)
命令說(shuō)明:當(dāng)且僅當(dāng)左幾何體與右?guī)缀误w相交時(shí)返回1(1為T(mén)rue,0為False)。
返回值類型:INT。
示例:
SELECT ST_Intersects(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'));
返回結(jié)果:
+----------------------------------------------------------------------------------------------------+ |ST_Intersects(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')) | +----------------------------------------------------------------------------------------------------+ | 0 |
ST_Overlaps
ST_Overlaps(g1, g2)
命令說(shuō)明:當(dāng)且僅當(dāng)左幾何體與右?guī)缀误w重疊時(shí)返回0(0為T(mén)rue,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))'));
返回結(jié)果:
+---------------------------------------------------------------------------------------------------------------------------------+ |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)
命令說(shuō)明:當(dāng)且僅當(dāng)左幾何體與右?guī)缀误w具有指定的尺寸擴(kuò)展有交集模型(TRUEDE-9IM)關(guān)系時(shí)返回1(1為T(mén)rue,0為False)。第三個(gè) (varchar)輸入接受此關(guān)系。
返回值類型:INT。
示例:
SELECT ST_Relate(ST_GeometryFromText('LINESTRING (0 0, 3 3)'), ST_GeometryFromText('LINESTRING (1 1, 4 1)'), '****T****');
返回參數(shù):
+--------------------------------------------------------------------------------------------------------------------------+ |ST_Relate(ST_GeometryFromText('LINESTRING (0 0, 3 3)'), ST_GeometryFromText('LINESTRING (1 1, 4 1)'), '****T****') | +--------------------------------------------------------------------------------------------------------------------------+ | 0 |
ST_Touches
ST_Touches(g1, g2)
命令說(shuō)明:當(dāng)且僅當(dāng)左幾何體與右?guī)缀误w接觸時(shí)返回1(1為T(mén)rue,0為False)。
返回值類型:INT。
示例:
SELECT ST_Touches(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'));
返回結(jié)果:
+-------------------------------------------------------------------------------------------------+ |ST_Touches(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')) | +-------------------------------------------------------------------------------------------------+ | 0 |
ST_Within
ST_Within(g1, g2)
命令說(shuō)明:當(dāng)且僅當(dāng)左幾何體位于右?guī)缀误w內(nèi)時(shí)返回1(1為T(mén)rue,0為False)。
返回值類型:BOOLEAN。
示例:
SELECT ST_Within(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'));
返回結(jié)果:
+-------------------------------------------------------------------------------------------------+ |ST_Within(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')) | +-------------------------------------------------------------------------------------------------+ | 0 |