第19章: MySQL中的空间扩展 / 19.5. 分析空间信息 / 19.5.5. 关于几何最小边界矩形(MBR)的关系

MySQL提供了一些可测试两个几何对象g1g2最小边界矩形之间关系的函数。它们包括:

  • MBRContains(g1,g2)

    返回10以指明g1的最小边界矩形是否包含g2的最小边界矩形。

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

    返回10以指明两个几何变量g1g2的最小边界矩形是否不相交。

  • MBREqual(g1,g2)

    返回10以指明两个几何变量g1g2的最小边界矩形是否相同。

  • MBRIntersects(g1,g2)

    返回10以指明两个几何变量g1g2的最小边界矩形是否相交。

  • MBROverlaps(g1,g2)

    返回10以指明两个几何变量g1g2的最小边界矩形是否交迭。

  • MBRTouches(g1,g2)

    返回10以指明两个几何变量g1g2的最小边界矩形是否接触。

  • MBRWithin(g1,g2)

    返回10以指明g1的最小边界矩形是否位于g2的最小边界矩形内。

    mysql> SET @g1 = GeomFromText('Polygon((0 0,0 3,3 3,3 0,0 0))');
    mysql> SET @g2 = 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 |
    +--------------------+--------------------+