|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Каждая функция, которая принадлежит этой группе, принимает значение геометрии как свой параметр и возвращает
некоторое количественное или качественное свойство геометрии. Некоторые функции ограничивают свой тип параметра.
Такой возврат функций NULL если параметр имеет неправильный тип геометрии.
Например, Area() возвраты
NULL если объектный тип ни один не Polygon ни MultiPolygon.
Функции, перечисленные в этом разделе, не ограничивают свой параметр и принимают значение геометрии любого типа.
Возвращает свойственную размерность значения геометрии g. Результат может быть–1, 0, 1, или 2. Значение этих
значений дается в Разделе 12.18.2.2, "Класс Geometry".
mysql> SELECT
Dimension(GeomFromText('LineString(1 1,2 2)'));+------------------------------------------------+| Dimension(GeomFromText('LineString(1 1,2 2)')) |+------------------------------------------------+| 1 |+------------------------------------------------+
Возвращает Минимальный Ограничительный прямоугольник (MBR) для значения геометрии g. Результат возвращается как a Polygon
значение.
Многоугольник определяется угловыми точками ограничивающего прямоугольника:
POLYGON((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
mysql> SELECT
AsText(Envelope(GeomFromText('LineString(1 1,2 2)')));+-------------------------------------------------------+| AsText(Envelope(GeomFromText('LineString(1 1,2 2)'))) |+-------------------------------------------------------+| POLYGON((1 1,2 1,2 2,1 2,1 1)) |+-------------------------------------------------------+
Возвраты те, как двоичная строка имя типа геометрии который экземпляр геометрии g элемент. Имя соответствует одному из instantiable
Geometry подклассы.
mysql> SELECT
GeometryType(GeomFromText('POINT(1 1)'));+------------------------------------------+| GeometryType(GeomFromText('POINT(1 1)')) |+------------------------------------------+| POINT |+------------------------------------------+
Возвраты 1, если значение геометрии g не имеет никаких
аномальных геометрических точек, таких как самопересечение или самокасание. IsSimple() возвраты 0, если параметр не прост, и NULL если это NULL.
Описание каждого instantiable геометрического class, данного ранее в главе, включает особые условия, которые заставляют экземпляр что class быть классифицированным как не простой. (См. Раздел 12.18.2.1, "Иерархия классов Геометрии".)
Возвращает целое число, указывающее на Пространственный Ссылочный Системный ID для значения
геометрии g.
В MySQL значение SRID является только целым числом, связанным со значением геометрии. Все вычисления делаются, принимая Евклидову (планарную) геометрию.
mysql> SELECT
SRID(GeomFromText('LineString(1 1,2 2)',101));+-----------------------------------------------+| SRID(GeomFromText('LineString(1 1,2 2)',101)) |+-----------------------------------------------+| 101 |+-----------------------------------------------+
Спецификация OpenGIS также определяет следующие функции, которые не реализует MySQL:
Возвращает геометрию, которая является закрытием комбинаторной границы значения геометрии g.
Эта функция является заполнителем, который возвращается 0 для любого допустимого значения
геометрии, 1 для любого недопустимого значения геометрии или NULL.
MySQL не поддерживает GIS EMPTY значения такой как POINT EMPTY.
A Point состоит из X и координаты Y, которые могут быть получены, используя
следующие функции:
Возвращает значение X-координаты для Point объект p как число двойной точности.
mysql> SELECT X(POINT(56.7,
53.34));+-----------------------+| X(POINT(56.7, 53.34)) |+-----------------------+| 56.7 |+-----------------------+
Возвращает значение Y-координаты для Point объект p как число двойной точности.
mysql> SELECT Y(POINT(56.7,
53.34));+-----------------------+| Y(POINT(56.7, 53.34)) |+-----------------------+| 53.34 |+-----------------------+
A LineString состоит из Point значения. Можно
извлечь определенные точки a LineString, считайте число очков, которое это
содержит, или получите его длину.
Возвраты Point это - конечная точка LineString
значение ls.
mysql>SET @ls = 'LineString(1 1,2 2,3 3)';mysql>SELECT AsText(EndPoint(GeomFromText(@ls)));+-------------------------------------+| AsText(EndPoint(GeomFromText(@ls))) |+-------------------------------------+| POINT(3 3) |+-------------------------------------+
Возвраты как двойная точность нумеруют длину LineString значение
ls в его связанной пространственной ссылке.
mysql>SET @ls = 'LineString(1 1,2 2,3 3)';mysql>SELECT GLength(GeomFromText(@ls));+----------------------------+| GLength(GeomFromText(@ls)) |+----------------------------+| 2.8284271247462 |+----------------------------+
GLength()
нестандартное имя. Это соответствует OpenGIS Length() функция.
Возвращает число Point объекты в LineString значение ls.
mysql>SET @ls = 'LineString(1 1,2 2,3 3)';mysql>SELECT NumPoints(GeomFromText(@ls));+------------------------------+| NumPoints(GeomFromText(@ls)) |+------------------------------+| 3 |+------------------------------+
Возвраты N-th Point в
Linestring значение ls.
Точки нумеруются, начинаясь 1.
mysql>SET @ls = 'LineString(1 1,2 2,3 3)';mysql>SELECT AsText(PointN(GeomFromText(@ls),2));+-------------------------------------+| AsText(PointN(GeomFromText(@ls),2)) |+-------------------------------------+| POINT(2 2) |+-------------------------------------+
Возвраты Point это - стартовая точка LineString
значение ls.
mysql>SET @ls = 'LineString(1 1,2 2,3 3)';mysql>SELECT AsText(StartPoint(GeomFromText(@ls)));+---------------------------------------+| AsText(StartPoint(GeomFromText(@ls))) |+---------------------------------------+| POINT(1 1) |+---------------------------------------+
Спецификация OpenGIS также определяет следующую функцию, которую не реализует MySQL:
Возвраты 1, если LineString значение ls
закрывается (то есть, StartPoint() и EndPoint() значения являются тем же самым), и просто (не
проходит через ту же самую точку не раз). Возвраты 0, если ls не кольцо, и–1, если это NULL.
Эти функции возвращают свойства MultiLineString значения.
Возвраты как двойная точность нумеруют длину MultiLineString
значение mls. Длина mls равно сумме длин ее элементов.
mysql>SET @mls = 'MultiLineString((1 1,2 2,3 3),(4 4,5 5))';mysql>SELECT GLength(GeomFromText(@mls));+-----------------------------+| GLength(GeomFromText(@mls)) |+-----------------------------+| 4.2426406871193 |+-----------------------------+
GLength()
нестандартное имя. Это соответствует OpenGIS Length() функция.
Возвраты 1, если MultiLineString значение mls закрывается (то есть, StartPoint() и EndPoint() значения являются тем же самым для каждого LineString в mls). Возвраты
0, если mls не закрывается, и–1, если это NULL.
mysql>SET @mls = 'MultiLineString((1 1,2 2,3 3),(4 4,5 5))';mysql>SELECT IsClosed(GeomFromText(@mls));+------------------------------+| IsClosed(GeomFromText(@mls)) |+------------------------------+| 0 |+------------------------------+
Эти функции возвращают свойства Polygon значения.
Возвраты как двойная точность нумеруют область Polygon значение poly, как измерено в его пространственной ссылочной
системе.
mysql>SET @poly = 'Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))';mysql>SELECT Area(GeomFromText(@poly));+---------------------------+| Area(GeomFromText(@poly)) |+---------------------------+| 4 |+---------------------------+
Возвращает внешнее кольцо Polygon значение poly
как a LineString.
mysql>SET @poly =->'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))';mysql>SELECT AsText(ExteriorRing(GeomFromText(@poly)));+-------------------------------------------+| AsText(ExteriorRing(GeomFromText(@poly))) |+-------------------------------------------+| LINESTRING(0 0,0 3,3 3,3 0,0 0) |+-------------------------------------------+
Возвраты NВнутреннее кольцо-th для Polygon значение poly как a
LineString. Кольца нумеруются, начинаясь 1.
mysql>SET @poly =->'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))';mysql>SELECT AsText(InteriorRingN(GeomFromText(@poly),1));+----------------------------------------------+| AsText(InteriorRingN(GeomFromText(@poly),1)) |+----------------------------------------------+| LINESTRING(1 1,1 2,2 2,2 1,1 1) |+----------------------------------------------+
Возвращается число внутренней части позвонило Polygon значение poly.
mysql>SET @poly =->'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))';mysql>SELECT NumInteriorRings(GeomFromText(@poly));+---------------------------------------+| NumInteriorRings(GeomFromText(@poly)) |+---------------------------------------+| 1 |+---------------------------------------+
Эти функции возвращают свойства MultiPolygon значения.
Возвраты как двойная точность нумеруют область MultiPolygon
значение mpoly, как измерено в его пространственной
ссылочной системе.
mysql>SET @mpoly =->'MultiPolygon(((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1)))';mysql>SELECT Area(GeomFromText(@mpoly));+----------------------------+| Area(GeomFromText(@mpoly)) |+----------------------------+| 8 |+----------------------------+
Возвращает математическую среднюю точку для MultiPolygon значение
mpoly как a Point.
Результат, как гарантируют, не будет идти MultiPolygon.
mysql>SET @poly =->GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7,5 5))');mysql>SELECT GeometryType(@poly),AsText(Centroid(@poly));+---------------------+--------------------------------------------+| GeometryType(@poly) | AsText(Centroid(@poly)) |+---------------------+--------------------------------------------+| POLYGON | POINT(4.958333333333333 4.958333333333333) |+---------------------+--------------------------------------------+
Спецификация OpenGIS также определяет следующую функцию, которую не реализует MySQL:
Эти функции возвращают свойства GeometryCollection значения.
Возвраты NГеометрия-th в GeometryCollection
значение gc. Конфигурации нумеруются, начинаясь 1.
mysql>SET @gc = 'GeometryCollection(Point(1 1),LineString(2 2, 3 3))';mysql>SELECT AsText(GeometryN(GeomFromText(@gc),1));+----------------------------------------+| AsText(GeometryN(GeomFromText(@gc),1)) |+----------------------------------------+| POINT(1 1) |+----------------------------------------+
Возвращает число конфигураций в GeometryCollection значение gc.
mysql>SET @gc = 'GeometryCollection(Point(1 1),LineString(2 2, 3 3))';mysql>SELECT NumGeometries(GeomFromText(@gc));+----------------------------------+| NumGeometries(GeomFromText(@gc)) |+----------------------------------+| 2 |+----------------------------------+