Функции конструктора создают геометрию из стандартного текстового описания (WKT) или другого формата данных, такого как стандартное двоичное представление (WKB) или шейп-файлы.
Когда вы даёте известное текстовое описание для построения геометрии, последними должны указываться координаты измерения. Например, если ваш текст содержит координаты x, y, z и m, то они должны указываться в том же порядке, а не так: x, y, m, z.
Геометрия может иметь несколько точек (или вообще их не иметь). Геометрия считается пустой, если в ней нет точек. Точечный подтип (point subtype) – это единственная геометрия, для которой установлено ограничение в одну или ноль точек; остальные подтипы могут иметь ноль или более точек.
В следующих разделах описывают геометрии суперклассов и подклассов для выбранной геометрии, а также перечисляют функции, которые могут создавать одна другую.
Суперкласс геометрии
Суперкласс ST_Geometry не может быть установлен; однако, вы можете определить столбец в формате ST_Geometry, и добавляемые актуальные данные определятся, как объекты точка (point), линия (linestring), полигон (polygon), мультиточка (multipoint), мультилиния (multilinestring) или мультиполигон (multipolygon).
Следующие функции могут быть использованы для создания суперкласса, который будет хранить любые вышеперечисленные типы элементов.
- ST_Geometry
- ST_GeomFromText (только Oracle и SQLite)
- ST_GeomFromWKB
Подклассы
Вы можете определить объект, как специальный подкласс; в этом случае будут добавляться только те типы элементов, которые допустимы для этого подкласса. Например, ST_PointFromWKB может создавать только точечные элементы.
ST_Point
ST_Point – это геометрия нулевой размерности, которая занимает отдельное местоположение в координатном пространстве. ST_Point имеет одиночное значение координат x,y, всегда является простым и не имеет (NULL) границу. ST_Point может быть использован для определения объектов, таких как нефтяные скважины, достопримечательности и места сбора проб воды.
Функции, которые создают точку, перечислены ниже:
- ST_Point
- ST_PointFromText (только Oracle и SQLite)
- ST_PointFromWKB
ST_MultiPoint
ST_MultiPoint это – набор элементов ST_Points, размер которых равен 0. ST_MultiPoint является простым, если ни один из его элементов не занимает одно и то же координатное пространство. Граница у ST_MultiPoint отсутствует (NULL). ST_MultiPoints может определять такие закономерности, как воздушные схемы трансляции и случаи распространения заболеваний.
Функции, которые создают геометрию мультиточки, перечислены ниже:
- ST_MultiPoint
- ST_MPointFromText (только в Oracle)
- ST_MPointFromWKB
ST_LineString
ST_LineString – это объект с размерностью 1, хранящийся, как последовательность точек, определяющая линейно-интерполированный путь. ST_LineString является простым, если он не имеет самопересечений. Конечные точки (граница) замкнутого ST_LineString занимают одну и ту же точку в пространстве. ST_LineString является кольцом, если он одновременно замкнутый и простой. В качестве свойства, наследованного от их суперкласса ST_Geometry, объекты ST_LineString имеют длину. ST_LineString часто используется для определения линейных объектов, таких как дороги, реки и линии электропередач.
Конечные точки обычно формируют границу ST_LineString, кроме того случая, когда ST_LineString замкнут, в этом случае граница отсутствует (NULL). Внутренняя часть ST_LineString – это связанный путь, который лежит между конечными точками, кроме того случая, когда ST_LineString замкнут; в этом случае внутренняя часть является непрерывной.
Функции, которые создают линии, перечислены ниже:
- ST_LineString
- ST_LineFromText (только Oracle и SQLite)
- ST_LineFromWKB
- ST_Curve (только Oracle и SQLite)
ST_MultiLineString
ST_MultiLineString – это набор из объектов ST_LineString.
Границей ST_MultiLineString являются непересекающиеся конечные точки элементов ST_LineString. Граница ST_MultiLineString отсутствует (NULL), если все конечные точки всех элементов пересекаются. В дополнение к другим свойствам, наследованным от суперкласса ST_Geometry, объекты ST_MultiLineString имеют длину. ST_MultiLineString часто используется для разрозненных (несмежных) линейных объектов, таких как водотоки или дорожные сети.
Функции, которые создают мультилинии, перечислены ниже:
- ST_MultiLineString
- ST_MLineFromText (только Oracle и SQLite)
- ST_MLineFromWKB
- ST_MultiCurve (только в Oracle)
ST_Polygon
ST_Polygon – это двумерная поверхность, хранящаяся как последовательность точек, определяющих ее внешнее ограничивающее кольцо и ноль или более внутренних колец. Объекты ST_Polygon всегда являются простыми. Элементы ST_Polygon определяют объекты, которые имеют пространственный экстент, такие как участки земли, водные поверхности и области юрисдикции.
Данный рисунок показывает примеры объектов ST_Polygon: (1) – ST_Polygon, для которого граница определена внешним кольцом; (2) – ST_Polygon, для которого граница определена внешним кольцом и двумя внутренними кольцами. Область, заключенная между внутренних колец, является частью наружности ST_Polygon. (3) – корректный ST_Polygon, поскольку кольца пересекаются в одной касательной точке.
Внешние и любые внутренние кольца определяют границу ST_Polygon, а пространство, заключенное между кольцами, определяет внутреннюю часть ST_Polygon. Кольца объекта ST_Polygon могут пересекаться в касательной точке, но не могут пересекаться (перекрещиваться). В дополнение к другим свойствам, наследованным от суперкласса ST_Geometry, объекты ST_Polygon имеют площадь.
Функции, которые создают полигоны, перечислены ниже:
- ST_Polygon
- ST_PolyFromText (только Oracle и SQLite)
- ST_PolyFromWKB
- ST_Surface (только Oracle и SQLite)
ST_MultiPolygon
Границей ST_MultiPolygon является суммированная длина всех внутренних и внешних колец его элементов. Внутренняя часть ST_MultiPolygon определяется, как суммарные внутренние части всех его элементов ST_Polygon. Граница элементов объекта ST_MultiPolygon может пересекаться только в касательной точке. В дополнение к другим свойствам, наследованным от суперкласса ST_Geometry, объекты ST_MultiPolygon имеют площадь. Элементы ST_MultiPolygon определяют объекты, такие как лесной массив или несмежный участок земли, например, цепь тихоокеанских островов.
Рисунок ниже показывает примеры объектов ST_MultiPolygon: (1) это ST_MultiPolygon с двумя элементами ST_Polygon. Граница определяется двумя внешними кольцами и тремя внутренними кольцами. (2) – ST_MultiPolygon с двумя элементами ST_Polygon. Граница определена двумя внешними кольцами и двумя внутренними кольцами. Два элемента ST_Polygon пересекаются в касательной точке.
Следующие функции создают мультиполигоны:
- ST_MultiPolygon
- ST_MPolyFromText (только Oracle и SQLite)
- ST_MPolyFromWKB
- ST_MultiSurface (только в Oracle)