MySQL 提供了几个特定于 MySQL 的函数,用于测试两个几何g1和g2的最小边界矩形(MBR)之间的关系。返回值 1 和 0 分别 table 示 true 和 false。
本节稍后将描述根据 OpenGIS 规范定义的一组相应的 MBR 功能。
返回 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 |
+----------------------+--------------------+
返回 1 或 0 以指示* g1 的最小边界矩形是否被 g2 *的最小边界矩形覆盖。这将测试相反的关系为MBRCovers()。
如果任何一个参数是NULL或空的几何,则返回值为NULL。
如果两个自变量都不是语法上格式正确的几何字节字符串,则发生ER_GIS_INVALID_DATA错误。
否则,返回值为非NULL。
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 MBRCovers(@g1,@g2), MBRCoveredby(@g1,@g2);
+--------------------+-----------------------+
| MBRCovers(@g1,@g2) | MBRCoveredby(@g1,@g2) |
+--------------------+-----------------------+
| 1 | 0 |
+--------------------+-----------------------+
mysql> SELECT MBRCovers(@g2,@g1), MBRCoveredby(@g2,@g1);
+--------------------+-----------------------+
| MBRCovers(@g2,@g1) | MBRCoveredby(@g2,@g1) |
+--------------------+-----------------------+
| 0 | 1 |
+--------------------+-----------------------+
返回 1 或 0 以指示* g1 的最小边界矩形是否覆盖 g2 *的最小边界矩形。这将测试相反的关系为MBRCoveredBy()。有关示例,请参见MBRCoveredBy()的说明。
如果任何一个参数是NULL或空的几何,则返回值为NULL。
如果两个自变量都不是语法上格式正确的几何字节字符串,则发生ER_GIS_INVALID_DATA错误。
否则,返回值为非NULL。
返回 1 或 0 以指示两个几何* g1 和 g2 *的最小边界矩形是否不相交(不相交)。
返回 1 或 0 以指示两个几何* g1 和 g2 *的最小边界矩形是否相同。
MBREqual()已过时,将在以后的 MySQL 版本中删除。请改用MBREquals()。
返回 1 或 0 以指示两个几何* g1 和 g2 *的最小边界矩形是否相同。
返回 1 或 0 以指示两个几何* g1 和 g2 *的最小边界矩形是否相交。
如果两个几何形状相交且“相交”,并且它们的相交会产生相同尺寸但不等于任何给定几何形状的几何形状,则“在空间上重叠”。
此函数返回 1 或 0,以指示两个几何* g1 和 g2 *的最小边界矩形是否重叠。
如果两个几何的内部不相交,则“在空间上接触”,但是其中一个几何的边界与另一个的边界或内部相交。
此函数返回 1 或 0 以指示两个几何* 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 |
+--------------------+--------------------+
OpenGIS 规范定义了以下功能,用于测试两个几何值g1和g2之间的关系。 MySQL 实现使用最小边界矩形,因此这些函数返回的结果与本节前面介绍的基于 MBR 的相应函数相同。返回值 1 和 0 分别 table 示 true 和 false。
这些函数支持所有参数类型组合,但根据 Open Geospatial Consortium 规范不适用的除外。
Contains()已过时,将在以后的 MySQL 版本中删除。请改用MBRContains()。
Disjoint()已过时,将在以后的 MySQL 版本中删除。请改用MBRDisjoint()。
Equals()已过时,将在以后的 MySQL 版本中删除。请改用MBREquals()。
Overlaps()已过时,将在以后的 MySQL 版本中删除。请改用MBROverlaps()。
Within()已过时,将在以后的 MySQL 版本中删除。请改用MBRWithin()。