14.16.7.1 Функции свойств общей геометрии
Функции, перечисленные в этом разделе, не ограничивают свои аргументы и принимают значение геометрии любого типа.
Если не указано иное, функции в этом разделе обрабатывают свои аргументы геометрии следующим образом:
Если какой-либо аргумент является
NULL, возвращаемое значение равноNULL.Если какой-либо аргумент геометрии не является синтаксически корректной геометрией, возникает ошибка.
Если какой-либо аргумент геометрии является синтаксически корректной геометрией в неопределённой системе пространственной привязки (SRS), возникает ошибка.
Если какой-либо аргумент SRID не находится в диапазоне 32-битного беззнакового целого числа, возникает ошибка.
Если какой-либо аргумент SRID ссылается на неопределённую SRS, возникает ошибка.
В противном случае возвращаемое значение не является
NULL.
Эти функции доступны для получения свойств геометрии:
-
Возвращает внутреннюю размерность значения геометрии
g. Размерность может быть −1, 0, 1 или 2. Значение этих значений приведено в разделе 13.4.2.2 «Класс геометрии».ST_Dimension()обрабатывает свои аргументы, как описано во введении к этому разделу.mysql>
SELECT ST_Dimension(ST_GeomFromText('LineString(1 1,2 2)'));+------------------------------------------------------+ | ST_Dimension(ST_GeomFromText('LineString(1 1,2 2)')) | +------------------------------------------------------+ | 1 | +------------------------------------------------------+ -
Возвращает минимальный ограничивающий прямоугольник (MBR) для значения геометрии
g. Результат возвращается как значениеPolygon, которое определяется угловыми точками ограничивающей рамки:POLYGON((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
mysql>
SELECT ST_AsText(ST_Envelope(ST_GeomFromText('LineString(1 1,2 2)')));+----------------------------------------------------------------+ | ST_AsText(ST_Envelope(ST_GeomFromText('LineString(1 1,2 2)'))) | +----------------------------------------------------------------+ | POLYGON((1 1,2 1,2 2,1 2,1 1)) | +----------------------------------------------------------------+Если аргументом является точка или вертикальный или горизонтальный отрезок прямой,
ST_Envelope()возвращает точку или отрезок прямой в качестве MBR, а не недействительный многоугольник:mysql>
SELECT ST_AsText(ST_Envelope(ST_GeomFromText('LineString(1 1,1 2)')));+----------------------------------------------------------------+ | ST_AsText(ST_Envelope(ST_GeomFromText('LineString(1 1,1 2)'))) | +----------------------------------------------------------------+ | LINESTRING(1 1,1 2) | +----------------------------------------------------------------+ST_Envelope()обрабатывает свои аргументы, как описано во введении к этому разделу, с этим исключением:Если геометрия имеет значение SRID для географической системы пространственной привязки (SRS), возникает ошибка.
-
Возвращает двоичную строку, указывающую имя типа геометрии, к которому относится экземпляр геометрии
g. Имя соответствует одному из подклассовGeometry, подлежащих экземпляризации.ST_GeometryType()обрабатывает свои аргументы, как описано во введении к этому разделу.mysql>
SELECT ST_GeometryType(ST_GeomFromText('POINT(1 1)'));+------------------------------------------------+ | ST_GeometryType(ST_GeomFromText('POINT(1 1)')) | +------------------------------------------------+ | POINT | +------------------------------------------------+ -
Эта функция является заглушкой, которая возвращает 1 для пустого значения коллекции геометрии или 0 в противном случае.
Единственная допустимая пустая геометрия представлена в виде пустого значения коллекции геометрии. MySQL не поддерживает значения GIS
EMPTY, такие какPOINT EMPTY.ST_IsEmpty()обрабатывает свои аргументы, как описано во введении к этому разделу. -
Возвращает 1, если значение геометрии
gявляется простым в соответствии со стандартом ISO SQL/MM Part 3: Spatial.ST_IsSimple()возвращает 0, если аргумент не является простым.Описание экземпляризуемых геометрических классов, приведённое в разделе 13.4.2 «Модель геометрии OpenGIS», включает конкретные условия, приводящие к классификации экземпляров классов как не простых.
ST_IsSimple()обрабатывает свои аргументы, как описано во введении к этому разделу, с этим исключением:-
Если геометрия имеет географическую SRS с долготой или широтой, выходящей за пределы диапазона, возникает ошибка:
Если значение долготы не находится в диапазоне (−180, 180], возникает ошибка.
Если значение широты не находится в диапазоне [−90, 90], возникает ошибка.
Указанные диапазоны приведены в градусах. Точные пределы диапазона незначительно отличаются из-за операций с плавающей точкой.
-
-
С единственным аргументом, представляющим допустимый объект геометрии
g,ST_SRID()возвращает целое число, обозначающее идентификатор системы пространственной привязки (SRS), связанной сg.С необязательным вторым аргументом, представляющим допустимое значение SRID,
ST_SRID()возвращает объект того же типа, что и его первый аргумент, со значением SRID, равным второму аргументу. Это только устанавливает значение SRID объекта; никакая трансформация координатных значений не выполняется.ST_SRID()обрабатывает свои аргументы, как описано во введении к этому разделу, с этим исключением:Для синтаксиса с одним аргументом
ST_SRID()возвращает SRID геометрии, даже если он ссылается на неопределённую SRS. Ошибка не возникает.
ST_SRID(иg,target_srid)ST_Transform(различаются следующим образом:g,target_srid)ST_SRID()изменяет значение SRID геометрии без преобразования её координат.ST_Transform()преобразует координаты геометрии дополнительно к изменению её значения SRID.
mysql>
SET @g = ST_GeomFromText('LineString(1 1,2 2)', 0);mysql>SELECT ST_SRID(@g);+-------------+ | ST_SRID(@g) | +-------------+ | 0 | +-------------+ mysql>SET @g = ST_SRID(@g, 4326);mysql>SELECT ST_SRID(@g);+-------------+ | ST_SRID(@g) | +-------------+ | 4326 | +-------------+Возможно создать геометрию в определённом SRID, передав в
ST_SRID()результат одной из функций MySQL для создания пространственных значений вместе со значением SRID. Например:SET @g1 = ST_SRID(Point(1, 1), 4326);
Однако этот метод создаёт геометрию в SRID 0, затем преобразует её в SRID 4326 (WGS 84). Предпочтительный вариант — создание геометрии с правильной системой пространственной привязки с самого начала. Например:
SET @g1 = ST_PointFromText('POINT(1 1)', 4326); SET @g1 = ST_GeomFromText('POINT(1 1)', 4326);Двухаргументный вариант
ST_SRID()полезен для задач, таких как исправление или изменение SRS геометрий, имеющих неправильный SRID.
© 2025 Oracle
Licensed under the GPLv2 License.