10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

12.17.9.2使用最小包围矩形的空间关系函数

MySQL提供了几个特定于MySQL的函数,用于测试两个几何图形的最小边界矩形(mbr)之间的关系g1而且g2.返回值1和0分别表示true和false。

点的边界框被解释为同时是边界和内部的点。

水平或垂直线的边界框解释为线的内部也是边界的线。端点是边界点。

如果任何参数是几何集合,则这些参数的内部、边界和外部是集合中所有元素的并集。

本节中的函数检测笛卡尔或地理空间参考系统(SRS)中的参数,并返回适合于SRS的结果。

除非另有说明,本节中的函数处理几何参数的方式如下:

  • 如果任何论点是或者一个空的几何图形,返回值是

  • 如果任何几何参数不是语法格式良好的几何,则ER_GIS_INVALID_DATA发生错误。

  • 如果任何几何参数是未定义空间参考系统(SRS)中语法良好的几何,则ER_SRS_NOT_FOUND发生错误。

  • 对于具有多个几何参数的函数,如果这些参数不在同一个SRS中,则ER_GIS_DIFFERENT_SRIDS发生错误。

  • 如果任何参数在几何上是无效的,要么结果是真或假(它是未定义的),或一个错误发生。

  • 对于地理SRS几何参数,如果任何参数有超出范围的经度或纬度,则会发生错误:

    显示的范围以度表示。如果SRS使用其他单位,则范围使用其单位对应的值。由于使用浮点运算,精确的范围限制稍有偏差。

  • 否则,返回值为non-

这些MBR函数可用于测试几何关系:

  • MBRContains (g1g2

    的最小边界矩形是否为g1的最小边框矩形g2.这测试了相反的关系MBRWithin ()

    MBRContains ()如本节介绍中所述处理其参数。

    mysql> SET @g1 = ST_GeomFromText('多边形((0 0,0 3,3 3,3 0,0 0))');mysql> SET @g2 = ST_GeomFromText('点(1 1)');mysql> SELECT MBRContains(@g1,@g2), MBRWithin(@g2,@g1);+----------------------+--------------------+ | MBRContains (@g1 @g2) | MBRWithin (@g2 @g1 ) | +----------------------+--------------------+ | 1 | 1  | +----------------------+--------------------+
  • MBRCoveredBy (g1g2

    的最小边界矩形是否为g1的最小边界矩形覆盖g2.这测试了相反的关系MBRCovers ()

    MBRCoveredBy ()如本节介绍中所述处理其参数。

    mysql> SET @g1 = ST_GeomFromText('多边形((0 0,0 3,3 3,3 0,0 0))');mysql> SET @g2 = ST_GeomFromText('点(1 1)');SELECT MBRCovers(@g1,@g2), MBRCoveredby(@g1,@g2);+--------------------+-----------------------+ | MBRCovers (@g1 @g2) | MBRCoveredby (@g1 @g2 ) | +--------------------+-----------------------+ | 1 | 0  | +--------------------+-----------------------+ mysql >选择MBRCovers (@g2 @g1) MBRCoveredby (@g2 @g1);+--------------------+-----------------------+ | MBRCovers (@g2 @g1) | MBRCoveredby (@g2 @g1 ) | +--------------------+-----------------------+ | 0 | 1  | +--------------------+-----------------------+
  • MBRCovers (g1g2

    的最小边界矩形是否为g1的最小边界矩形g2.这测试了相反的关系MBRCoveredBy ().参见MBRCoveredBy ()为例子。

    MBRCovers ()如本节介绍中所述处理其参数。

  • MBRDisjoint (g1g2

    返回1或0,以指示两个几何图形的最小边界矩形g1而且g2不相交(不相交)。

    MBRDisjoint ()如本节介绍中所述处理其参数。

  • MBREquals (g1g2

    返回1或0,以指示两个几何图形的最小边界矩形g1而且g2都是一样的。

    MBREquals ()如本节介绍中描述的那样处理它的参数,除非它不返回对于空的几何参数。

  • MBRIntersects (g1g2

    返回1或0,以指示两个几何图形的最小边界矩形g1而且g2相交。

    MBRIntersects ()如本节介绍中所述处理其参数。

  • MBROverlaps (g1g2

    两个几何图形空间重叠如果它们相交它们的交点会得到相同维数的几何图形但不等于给定的任何一个几何图形。

    这个函数返回1或0来指示两个几何图形的最小边界矩形g1而且g2重叠。

    MBROverlaps ()如本节介绍中所述处理其参数。

  • MBRTouches (g1g2

    两个几何图形空间联系如果它们的内部不相交,但其中一个几何图形的边界与另一个几何图形的边界或内部相交。

    这个函数返回1或0来指示两个几何图形的最小边界矩形g1而且g2联系。

    MBRTouches ()如本节介绍中所述处理其参数。

  • MBRWithin (g1g2

    的最小边界矩形是否为g1的最小边界矩形内是g2.这测试了相反的关系MBRContains ()

    MBRWithin ()如本节介绍中所述处理其参数。

    mysql> SET @g1 = ST_GeomFromText('多边形((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))');SELECT MBRWithin(@g1,@g2), MBRWithin(@g2,@g1);+--------------------+--------------------+ | MBRWithin (@g1 @g2) | MBRWithin (@g2 @g1 ) | +--------------------+--------------------+ | 1 | 0  | +--------------------+--------------------+