MariaDB TOUCHES() 函数的基础用法与实例

MariaDB TOUCHES() 函数用来判断两个几何对象是否相切,即它们是否存在共同的点,但没有内部点相交。

发布于

MariaDB TOUCHES() 函数用来判断两个几何对象是否相切,即它们是否存在共同的点,但没有内部点相交。该函数通常用于空间数据处理和地理信息系统(GIS)应用。

语法

MariaDB TOUCHES() 函数的语法如下:

TOUCHES(g1, g2)
  • g1g2:表示两个几何对象的 GEOMETRY 值。

该函数返回一个整数值:

  • 如果 g1g2 相切,返回 1。
  • 如果 g1g2 不相切,返回 0。
  • 如果任一输入参数为空或非法几何对象,返回 NULL。

实例

两个矩形相切

该实例演示了两个矩形相切的情况。

SELECT TOUCHES(
    GEOMFROMTEXT('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))'),
    GEOMFROMTEXT('POLYGON((2 0, 2 2, 4 2, 4 0, 2 0))')
);

以下是该语句的输出:

1

这个例子中,两个矩形共享一个顶点 (2, 0) 和 (2, 2),因此它们相切。

这个例子中,两个圆的圆周相交于一个点,因此它们相切。

两个多边形不相切

该实例演示了两个多边形不相切的情况。

SELECT TOUCHES(
    GEOMFROMTEXT('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))'),
    GEOMFROMTEXT('POLYGON((3 0, 3 2, 5 2, 5 0, 3 0))')
);

以下是该语句的输出:

0

这个例子中,两个多边形之间没有共享任何点,因此它们不相切。

一个几何对象为空

该实例演示了当一个几何对象为空时,TOUCHES() 函数的行为。

SELECT TOUCHES(
    GEOMFROMTEXT('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))'),
    NULL
);

以下是该语句的输出:

NULL

当任一输入参数为空时,TOUCHES() 函数返回 NULL。

相关函数

以下是几个与 MariaDB TOUCHES() 相关的几个函数:

  • MariaDB INTERSECTS() 函数用来判断两个几何对象是否相交。
  • MariaDB CROSSES() 函数用来判断两个几何对象是否相交,并且其交集是一个非空集合。
  • MariaDB WITHIN() 函数用来判断一个几何对象是否完全包含在另一个几何对象内部。
  • MariaDB CONTAINS() 函数用来判断一个几何对象是否完全包含另一个几何对象。

结论

MariaDB TOUCHES() 函数是一个非常有用的函数,可以用于判断两个几何对象是否相切。它在处理空间数据和地理信息系统应用中扮演着重要角色。