MariaDB ST_TOUCHES() 函数的基础用法与实例
MariaDB ST_Touches()
函数用来检测两个几何体是否相切。
发布于
MariaDB ST_Touches()
函数用来检测两个几何体是否相切。如果两个几何体有共同的点,但没有内部点相交,则认为它们相切。它常用于地理信息系统(GIS)应用程序中,用于处理和分析空间数据。
语法
MairaDB ST_Touches()
函数的语法如下:
ST_Touches(g1, g2)
g1
:表示第一个几何体。g2
:表示第二个几何体。
函数返回一个布尔值。如果两个几何体相切,则返回 1;否则返回 0。
实例
检测两个点是否相切
本实例展示了如何使用 ST_Touches()
函数检测两个点是否相切。
SELECT ST_Touches(
ST_GeomFromText('POINT(1 1)'),
ST_GeomFromText('POINT(2 2)'))
AS touches;
以下是该语句的输出:
+---------+
| touches |
+---------+
| 0 |
+---------+
由于两个点没有共同的点,因此它们不相切。
检测一条线和一个点是否相切
本实例展示了如何使用 ST_Touches()
函数检测一条线和一个点是否相切。
SELECT ST_Touches(
ST_GeomFromText('LINESTRING(0 0, 2 2)'),
ST_GeomFromText('POINT(2 2)'))
AS touches;
以下是该语句的输出:
+---------+
| touches |
+---------+
| 1 |
+---------+
由于线的终点与点相同,因此它们相切。
检测两条线是否相切
本实例展示了如何使用 ST_Touches()
函数检测两条线是否相切。
SELECT ST_Touches(
ST_GeomFromText('LINESTRING(0 0, 2 2)'),
ST_GeomFromText('LINESTRING(2 2, 4 4)'))
AS touches;
以下是该语句的输出:
+---------+
| touches |
+---------+
| 1 |
+---------+
由于两条线在点 (2 2) 处相交,并且没有内部点相交,因此它们相切。
检测一个多边形和一条线是否相切
本实例展示了如何使用 ST_Touches()
函数检测一个多边形和一条线是否相切。
DROP TABLE IF EXISTS polygons;
CREATE TABLE polygons (id INT, poly POLYGON);
INSERT INTO polygons VALUES
(1, ST_GeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))')),
(2, ST_GeomFromText('POLYGON((2 2, 6 2, 6 6, 2 6, 2 2))'));
SELECT id, ST_Touches(poly, ST_GeomFromText('LINESTRING(1 1, 5 5)')) AS touches
FROM polygons;
以下是该语句的输出:
+------+---------+
| id | touches |
+------+---------+
| 1 | 0 |
| 2 | 0 |
+------+---------+
在这个例子中,线与两个多边形都不相切。
当传入空值时的行为
当传入空值时,ST_Touches()
函数将返回 NULL。
SELECT ST_Touches(
ST_GeomFromText('LINESTRING(0 0, 2 2)'),
NULL)
AS touches;
以下是该语句的输出:
+---------+
| touches |
+---------+
| NULL |
+---------+
相关函数
以下是几个与 MairaDB ST_Touches()
相关的几个函数:
- MariaDB
ST_Crosses()
函数用来检测两个几何体是否相交。 - MariaDB
ST_DISJOINT()
函数用来检测两个几何体是否不相交。 - MariaDB
ST_Intersects()
函数用来检测两个几何体是否相交或相切。 - MariaDB
ST_Overlaps()
函数用来检测两个几何体是否重叠。
结论
MariaDB ST_Touches()
函数是地理信息系统(GIS)应用程序中一个非常有用的函数,它可以检测两个几何体是否相切。本文介绍了该函数的语法、用法实例以及相关函数。通过本文的学习,您应该能够熟练地使用 ST_Touches()
函数来处理和分析空间数据。