Documentation Home

12.17.9.2 使用最小外接矩形的空间关系函数

MySQL 提供了几个 MySQL 特定的函数来测试两个几何图形的最小边界矩形 (MBR)g1g2. 返回值 1 和 0 分别表示 true 和 false。

根据 OpenGIS 规范定义的一组相应的 MBR 函数将在本节后面描述。

  • MBRContains(g1, g2)

    返回 1 或 0 表示 的最小外接矩形是否g1包含 的最小外接矩形g2。这测试相反的关系作为 MBRWithin()

    mysql> SET @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');
    mysql> SET @g2 = ST_GeomFromText('Point(1 1)');
    mysql> SELECT MBRContains(@g1,@g2), MBRWithin(@g2,@g1);
    +----------------------+--------------------+
    | MBRContains(@g1,@g2) | MBRWithin(@g2,@g1) |
    +----------------------+--------------------+
    |                    1 |                  1 |
    +----------------------+--------------------+

    MBRContains()并且 Contains()是同义词。

  • MBRDisjoint(g1, g2)

    返回 1 或 0 以指示两个几何的最小边界矩形是否 g1g2相交(不相交)。

    MBRDisjoint()并且 Disjoint()是同义词。

  • MBREqual(g1, g2)

    返回 1 或 0 表示两个几何图形的最小外接矩形是否 g1相同 g2

  • MBRIntersects(g1, g2)

    返回 1 或 0 以指示两个几何图形的最小外接矩形是否 g1相交 g2

    MBRIntersects()并且 Intersects()是同义词。

  • MBROverlaps(g1, g2)

    如果两个几何图形相交并且它们的相交导致具有相同维度但不等于任何给定几何图形的几何图形,则它们在 空间上重叠。

    g1此函数返回 1 或 0 以指示两个几何图形的 最小外接矩形是否 g2重叠。

    MBROverlaps()并且 Overlaps()是同义词。

  • MBRTouches(g1, g2)

    如果两个几何体的内部不相交,但其中一个几何体的边界与另一个几何体的边界或内部相交,则 两个几何体在空间上接触。

    g1此函数返回 1 或 0 以指示两个几何图形的 最小边界矩形是否相 g2触。

  • MBRWithin(g1, g2)

    返回 1 或 0,表示 的最小外接矩形g1是否在 的最小外接矩形内g2。这测试相反的关系作为 MBRContains()

    mysql> SET @g1 = ST_GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');
    mysql> SET @g2 = ST_GeomFromText('Polygon((0 0,0 5,5 5,5 0,0 0))');
    mysql> SELECT MBRWithin(@g1,@g2), MBRWithin(@g2,@g1);
    +--------------------+--------------------+
    | MBRWithin(@g1,@g2) | MBRWithin(@g2,@g1) |
    +--------------------+--------------------+
    |                  1 |                  0 |
    +--------------------+--------------------+

    MBRWithin()并且 Within()是同义词。

g1OpenGIS 规范定义了以下函数,用于测试两个几何值和 之间的关系 g2。MySQL 实现使用最小边界矩形,因此这些函数返回与本节前面描述的相应的基于 MBR 的函数相同的结果。返回值 1 和 0 分别表示 true 和 false。