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, "Иерархия классов Геометрии".)
До MySQL 5.6.1 эта функция всегда возвращается 0.
Возвращает целое число, указывающее на Пространственный Ссылочный Системный 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 |+----------------------------------+