Spec-Zone.ru › MySQL 5.7

12.16.9.2 Функции пространственных отношений, использующие минимальные ограничивающие прямоугольники

MySQL предоставляет несколько функций, специфичных для MySQL, которые проверяют отношение между минимальными ограничивающими прямоугольниками (MBR) двух геометрий g1 и g2. Значения возврата 1 и 0 соответственно указывают на истинность и ложность.

Соответствующий набор функций MBR, определенных в соответствии со спецификацией OpenGIS, описан далее в этом разделе.

  • 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() являются синонимами.

  • MBRCoveredBy(g1, g2)

    Возвращает 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 |
    +--------------------+-----------------------+
    
  • MBRCovers(g1, g2)

    Возвращает 1 или 0, чтобы указать, покрывает ли минимальная ограничивающая прямоугольная область g1 минимальную ограничивающую прямоугольную область g2. Это проверяет обратное отношение по сравнению с MBRCoveredBy(). См. описание MBRCoveredBy() для примеров.

    MBRCovers() обрабатывает свои аргументы следующим образом:

    • Если любой из аргументов является NULL или пустой геометрией, значение возврата равно NULL.

    • Если какой-либо аргумент не является синтаксически корректной геометрической строкой байтов, возникает ошибка.

    • В противном случае значение возврата отлично от NULL.

  • MBRDisjoint(g1, g2)

    Возвращает 1 или 0, чтобы указать, являются ли минимальные ограничивающие прямоугольные области двух геометрий g1 и g2 непересекающимися (не пересекаются).

    MBRDisjoint() и Disjoint() являются синонимами.

  • MBREqual(g1, g2)

    Возвращает 1 или 0, чтобы указать, являются ли минимальные ограничивающие прямоугольные области двух геометрий g1 и g2 одинаковыми.

    MBREqual() устарело; ожидается, что оно будет удалено в будущей версии MySQL. Используйте MBREquals() вместо него.

  • MBREquals(g1, g2)

    Возвращает 1 или 0, чтобы указать, являются ли минимальные ограничивающие прямоугольные области двух геометрий g1 и g2 одинаковыми.

    MBREquals(), MBREqual() и Equals() являются синонимами.

  • MBRIntersects(g1, g2)

    Возвращает 1 или 0, чтобы указать, пересекаются ли минимальные ограничивающие прямоугольные области двух геометрий g1 и g2.

    MBRIntersects() и Intersects() являются синонимами.

  • MBROverlaps(g1, g2)

    Две геометрии пространственно перекрываются, если они пересекаются, и их пересечение приводит к геометрии той же размерности, но не равной ни одной из заданных геометрий.

    Эта функция возвращает 1 или 0, чтобы указать, перекрываются ли минимальные ограничивающие прямоугольные области двух геометрий g1 и g2.

    MBROverlaps() и Overlaps() являются синонимами.

  • MBRTouches(g1, g2)

    Две геометрии пространственно касаются, если их внутренности не пересекаются, но граница одной из геометрий пересекает либо границу, либо внутренность другой.

    Эта функция возвращает 1 или 0, чтобы указать, касаются ли минимальные ограничивающие прямоугольные области двух геометрий g1 и 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() являются синонимами.

Спецификация OpenGIS определяет следующие функции, которые проверяют отношение между двумя значениями геометрии g1 и g2. Реализация MySQL использует минимальные ограничивающие прямоугольные области, поэтому эти функции возвращают тот же результат, что и соответствующие функции на основе MBR, описанные ранее в этом разделе. Значения возврата 1 и 0 обозначают истинно и ложно соответственно.

Эти функции поддерживают все комбинации типов аргументов, кроме тех, которые неприменимы в соответствии со спецификацией Open Geospatial Consortium.

  • Contains(g1, g2)

    MBRContains() и Contains() — синонимы. Для получения дополнительной информации см. описание MBRContains().

    Contains() устарело; ожидается его удаление в будущей версии MySQL. Используйте MBRContains() вместо него.

  • Disjoint(g1, g2)

    MBRDisjoint() и Disjoint() — синонимы. Для получения дополнительной информации см. описание MBRDisjoint().

    Disjoint() устарело; ожидается его удаление в будущей версии MySQL. Используйте MBRDisjoint() вместо него.

  • Equals(g1, g2)

    MBREquals() и Equals() — синонимы. Для получения дополнительной информации см. описание MBREquals().

    Equals() устарело; ожидается его удаление в будущей версии MySQL. Используйте MBREquals() вместо него.

  • Intersects(g1, g2)

    MBRIntersects() и Intersects() — синонимы. Для получения дополнительной информации см. описание MBRIntersects().

    Intersects() устарело; ожидается его удаление в будущей версии MySQL. Используйте MBRIntersects() вместо него.

  • Overlaps(g1, g2)

    MBROverlaps() и Overlaps() — синонимы. Для получения дополнительной информации см. описание MBROverlaps().

    Overlaps() устарело; ожидается его удаление в будущей версии MySQL. Используйте MBROverlaps() вместо него.

  • Within(g1, g2)

    MBRWithin() и Within() — синонимы. Для получения дополнительной информации см. описание MBRWithin().

    Within() устарело; ожидается его удаление в будущей версии MySQL. Используйте MBRWithin() вместо него.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/spatial-relation-functions-mbr.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API