14.16.7.2 Функции свойств точки
Объект Point состоит из координат X и Y, которые можно получить, используя функции ST_X() и ST_Y() соответственно. Эти функции также допускают необязательный второй аргумент, который задаёт значение координаты X или Y. В этом случае результатом функции является объект Point из первого аргумента с соответствующей координатой, изменённой на значение второго аргумента.
Для объектов Point, имеющих географическую систему координат (СК), долготу и широту можно получить, используя функции ST_Longitude() и ST_Latitude() соответственно. Эти функции также допускают необязательный второй аргумент, который задаёт значение долготы или широты. В этом случае результатом функции является объект Point из первого аргумента с изменённой долготой или широтой на значение второго аргумента.
За исключением случаев, когда указано иначе, функции в этом разделе обрабатывают свои геометрические аргументы следующим образом:
Если любой аргумент является
NULL, возвращаемое значение равноNULL.Если любой геометрический аргумент является корректной геометрией, но не объектом
Point, возникает ошибка.Если любой геометрический аргумент не является синтаксически корректной геометрией, возникает ошибка.
Если любой геометрический аргумент является синтаксически корректной геометрией в неопределённой системе координат (СК), возникает ошибка.
Если предоставлен аргумент координаты X или Y и значение является
-inf,+infилиNaN, возникает ошибка.-
Если значение долготы или широты выходит за пределы диапазона, возникает ошибка:
Если значение долготы не находится в диапазоне (−180, 180], возникает ошибка.
Если значение широты не находится в диапазоне [−90, 90], возникает ошибка.
Указанные диапазоны в градусах. Точные пределы диапазона немного отличаются из-за арифметики с плавающей запятой.
В противном случае возвращаемое значение не является
NULL.
Эти функции доступны для получения свойств точки:
-
ST_Latitude(p[,new_latitude_val])При использовании одного аргумента, представляющего корректный объект
Pointp, имеющий географическую систему координат (СК), функцияST_Latitude()возвращает значение широтыpкак число с двойной точностью.При использовании необязательного второго аргумента, представляющего корректное значение широты, функция
ST_Latitude()возвращает объектPoint, подобный первому аргументу, с широтой, равной второму аргументу.Функция
ST_Latitude()обрабатывает свои аргументы, как описано в начале этого раздела, с добавлением того, что если объектPointявляется корректным, но не имеет географической СК, возникает ошибка.mysql>
SET @pt = ST_GeomFromText('POINT(45 90)', 4326);mysql>SELECT ST_Latitude(@pt);+------------------+ | ST_Latitude(@pt) | +------------------+ | 45 | +------------------+ mysql>SELECT ST_AsText(ST_Latitude(@pt, 10));+---------------------------------+ | ST_AsText(ST_Latitude(@pt, 10)) | +---------------------------------+ | POINT(10 90) | +---------------------------------+ -
ST_Longitude(p[,new_longitude_val])При использовании одного аргумента, представляющего корректный объект
Pointp, имеющий географическую систему координат (СК), функцияST_Longitude()возвращает значение долготыpкак число с двойной точностью.При использовании необязательного второго аргумента, представляющего корректное значение долготы, функция
ST_Longitude()возвращает объектPoint, подобный первому аргументу, с долготой, равной второму аргументу.Функция
ST_Longitude()обрабатывает свои аргументы, как описано в начале этого раздела, с добавлением того, что если объектPointявляется корректным, но не имеет географической СК, возникает ошибка.mysql>
SET @pt = ST_GeomFromText('POINT(45 90)', 4326);mysql>SELECT ST_Longitude(@pt);+-------------------+ | ST_Longitude(@pt) | +-------------------+ | 90 | +-------------------+ mysql>SELECT ST_AsText(ST_Longitude(@pt, 10));+----------------------------------+ | ST_AsText(ST_Longitude(@pt, 10)) | +----------------------------------+ | POINT(45 10) | +----------------------------------+ -
При использовании одного аргумента, представляющего корректный объект
Pointp, функцияST_X()возвращает значение координаты Xpкак число с двойной точностью. Координата X рассматривается как ось, которая появляется первой в определении системы координат (СК)Point.При использовании необязательного второго аргумента, функция
ST_X()возвращает объектPoint, подобный первому аргументу, с координатой X, равной второму аргументу. Если объектPointимеет географическую СК, второй аргумент должен находиться в допустимом диапазоне для значений долготы или широты.Функция
ST_X()обрабатывает свои аргументы, как описано в начале этого раздела.mysql>
SELECT ST_X(Point(56.7, 53.34));+--------------------------+ | ST_X(Point(56.7, 53.34)) | +--------------------------+ | 56.7 | +--------------------------+ mysql>SELECT ST_AsText(ST_X(Point(56.7, 53.34), 10.5));+-------------------------------------------+ | ST_AsText(ST_X(Point(56.7, 53.34), 10.5)) | +-------------------------------------------+ | POINT(10.5 53.34) | +-------------------------------------------+ -
При использовании одного аргумента, представляющего корректный объект
Pointp, функцияST_Y()возвращает значение координаты Ypкак число с двойной точностью. Координата Y рассматривается как ось, которая появляется второй в определении системы координат (СК)Point.При использовании необязательного второго аргумента, функция
ST_Y()возвращает объектPoint, подобный первому аргументу, с координатой Y, равной второму аргументу. Если объектPointимеет географическую СК, второй аргумент должен находиться в допустимом диапазоне для значений долготы или широты.Функция
ST_Y()обрабатывает свои аргументы, как описано в начале этого раздела.mysql>
SELECT ST_Y(Point(56.7, 53.34));+--------------------------+ | ST_Y(Point(56.7, 53.34)) | +--------------------------+ | 53.34 | +--------------------------+ mysql>SELECT ST_AsText(ST_Y(Point(56.7, 53.34), 10.5));+-------------------------------------------+ | ST_AsText(ST_Y(Point(56.7, 53.34), 10.5)) | +-------------------------------------------+ | POINT(56.7 10.5) | +-------------------------------------------+
© 2025 Oracle
Licensed under the GPLv2 License.