Spec-Zone.ru › MariaDB

Функции GIS в 5.3.3

Основная информация о существующих пространственных объектах находится в разделе Географические объекты базы знаний. Страница Пространственные расширения в руководстве MySQL также применима к MariaDB.

Выпуск MariaDB 5.3.3 содержит код, улучшающий пространственные возможности в MariaDB.

MySQL работает с пространственными данными на основе стандартов OpenGIS, в частности OpenGIS SFS (Простой доступ к функциям, вариант SQL).

Первоначальная поддержка была основана на версии 05-134 стандарта. MariaDB реализует подмножество среды «SQL с типами геометрии», предложенной OGC. И среда SQL была расширена набором типов геометрии.

MariaDB поддерживает пространственные расширения для работы с пространственными объектами. Эти функции доступны для таблиц Aria, MyISAM, InnoDB, NDB и ARCHIVE.

Для пространственных столбцов Aria и MyISAM поддерживают как SPATIAL, так и не-SPATIAL индексы. Другие движки хранения поддерживают не-SPATIAL индексы.

Последние изменения в коде направлены на удовлетворение требований OpenGIS. Одной из недоработок предыдущих версий было то, что функции, проверяющие пространственные отношения, не учитывали фактическую форму объекта, а вместо этого работали только с их ограничивающими прямоугольниками. Эти устаревшие функции оставлены без изменений, а новые, правильно работающие функции имеют префикс «ST_», в соответствии с последними требованиями OpenGIS. Также были добавлены операции над геометрическими объектами.

Список новых функций:

Пространственные операторы. Они производят новые геометрии.

Имя Описание
ST_UNION(A, B) объединение A и B
ST_INTERSECTION(A, B) пересечение A и B
ST_SYMDIFFERENCE(A, B) симметричная разность, непересекающиеся части A и B
ST_BUFFER(A, radius) возвращает форму области, находящейся на расстоянии 'radius' от формы A.

Предикаты, возвращают булевый результат отношения

Имя Описание
ST_INTERSECTS(A, B) если A и B имеют пересечение
ST_CROSSES(A, B) если A и B пересекаются
ST_EQUALS(A, B) если A и B равны
ST_WITHIN(A, B) если A лежит внутри B
ST_CONTAINS(A,B) если B лежит внутри A
ST_DISJOINT(A,B) если A и B не имеют пересечения
ST_TOUCHES(A,B) если A касается B
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/gis-features-in-533/

Spec-Zone.ru

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