12.16.9.2 Функции пространственных отношений, использующие минимальные ограничивающие прямоугольники
MySQL предоставляет несколько функций, специфичных для MySQL, которые проверяют отношение между минимальными ограничивающими прямоугольниками (MBR) двух геометрий g1 и g2. Значения возврата 1 и 0 соответственно указывают на истинность и ложность.
Соответствующий набор функций MBR, определенных в соответствии со спецификацией OpenGIS, описан далее в этом разделе.
-
Возвращает 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()являются синонимами. -
Возвращает 1 или 0, чтобы указать, покрывается ли минимальная ограничивающая прямоугольная область
g1минимальной ограничивающей прямоугольной областьюg2. Это проверяет обратное отношение по сравнению сMBRCovers().MBRCoveredBy()обрабатывает свои аргументы следующим образом:Если любой из аргументов является
NULLили пустой геометрией, значение возврата равноNULL.Если какой-либо аргумент не является синтаксически корректной геометрической строкой байтов, возникает ошибка.
В противном случае значение возврата отлично от
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()для примеров.MBRCovers()обрабатывает свои аргументы следующим образом:Если любой из аргументов является
NULLили пустой геометрией, значение возврата равноNULL.Если какой-либо аргумент не является синтаксически корректной геометрической строкой байтов, возникает ошибка.
В противном случае значение возврата отлично от
NULL.
-
Возвращает 1 или 0, чтобы указать, являются ли минимальные ограничивающие прямоугольные области двух геометрий
g1иg2непересекающимися (не пересекаются).MBRDisjoint()иDisjoint()являются синонимами. -
Возвращает 1 или 0, чтобы указать, являются ли минимальные ограничивающие прямоугольные области двух геометрий
g1иg2одинаковыми.MBREqual()устарело; ожидается, что оно будет удалено в будущей версии MySQL. ИспользуйтеMBREquals()вместо него. -
Возвращает 1 или 0, чтобы указать, являются ли минимальные ограничивающие прямоугольные области двух геометрий
g1иg2одинаковыми.MBREquals(),MBREqual()иEquals()являются синонимами. -
Возвращает 1 или 0, чтобы указать, пересекаются ли минимальные ограничивающие прямоугольные области двух геометрий
g1иg2.MBRIntersects()иIntersects()являются синонимами. -
Две геометрии пространственно перекрываются, если они пересекаются, и их пересечение приводит к геометрии той же размерности, но не равной ни одной из заданных геометрий.
Эта функция возвращает 1 или 0, чтобы указать, перекрываются ли минимальные ограничивающие прямоугольные области двух геометрий
g1иg2.MBROverlaps()иOverlaps()являются синонимами. -
Две геометрии пространственно касаются, если их внутренности не пересекаются, но граница одной из геометрий пересекает либо границу, либо внутренность другой.
Эта функция возвращает 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 | +--------------------+--------------------+MBRWithin()иWithin()являются синонимами.
Спецификация OpenGIS определяет следующие функции, которые проверяют отношение между двумя значениями геометрии g1 и g2. Реализация MySQL использует минимальные ограничивающие прямоугольные области, поэтому эти функции возвращают тот же результат, что и соответствующие функции на основе MBR, описанные ранее в этом разделе. Значения возврата 1 и 0 обозначают истинно и ложно соответственно.
Эти функции поддерживают все комбинации типов аргументов, кроме тех, которые неприменимы в соответствии со спецификацией Open Geospatial Consortium.
-
MBRContains()иContains()— синонимы. Для получения дополнительной информации см. описаниеMBRContains().Contains()устарело; ожидается его удаление в будущей версии MySQL. ИспользуйтеMBRContains()вместо него. -
MBRDisjoint()иDisjoint()— синонимы. Для получения дополнительной информации см. описаниеMBRDisjoint().Disjoint()устарело; ожидается его удаление в будущей версии MySQL. ИспользуйтеMBRDisjoint()вместо него. -
MBREquals()иEquals()— синонимы. Для получения дополнительной информации см. описаниеMBREquals().Equals()устарело; ожидается его удаление в будущей версии MySQL. ИспользуйтеMBREquals()вместо него. -
MBRIntersects()иIntersects()— синонимы. Для получения дополнительной информации см. описаниеMBRIntersects().Intersects()устарело; ожидается его удаление в будущей версии MySQL. ИспользуйтеMBRIntersects()вместо него. -
MBROverlaps()иOverlaps()— синонимы. Для получения дополнительной информации см. описаниеMBROverlaps().Overlaps()устарело; ожидается его удаление в будущей версии MySQL. ИспользуйтеMBROverlaps()вместо него. -
MBRWithin()иWithin()— синонимы. Для получения дополнительной информации см. описаниеMBRWithin().Within()устарело; ожидается его удаление в будущей версии MySQL. ИспользуйтеMBRWithin()вместо него.
© 2025 Oracle
Licensed under the GPLv2 License.