Las funciones del constructor crean una geometría a partir de una descripción de texto conocida o de otro formato de datos, como un binario o shapefiles conocido.
Cuando se proporciona una descripción de texto conocida para construir una geometría, la coordenada de medición se debe especificar al final. Por ejemplo, si el texto incluye coordenadas para x, y, z y m, se deben proporcionar en ese orden, no x, y, m, z.
Una geometría puede tener cero o más puntos. Una geometría se considera vacía si tiene cero puntos. El subtipo punto es la única geometría que está restringida a cero o un punto; todos los demás subtipos pueden tener cero o más.
Las siguientes secciones describen la geometría superclase y las geometrías de subclase, e incluyen las funciones que cada una puede construir.
Geometría superclase
No se puede crear una instancia de la superclase ST_Geometry; aunque puede definir una columna como un tipo ST_Geometry, los datos reales insertados se definen como entidades de punto, cadena de línea, polígono, multipunto, cadena de multilínea o multipolígono.
Las siguientes funciones se pueden utilizar para crear una superclase que contenga cualquiera de estos tipos de entidad.
- ST_Geometry
- ST_GeomFromText (solo Oracle y SQLite)
- ST_GeomFromWKB
Subclases
Puede definir una entidad como una subclase específica, en cuyo caso sólo el tipo de entidad permitido para esa subclase se pueden insertar. Por ejemplo, ST_PointFromWKB sólo puede crear entidades de punto.
ST_Point
Un ST_Point es una geometría de cero dimensión que ocupa una sola ubicación en un espacio de coordenadas. Un ST_Point que tiene un solo valor de coordenada x,y siempre es simple y tiene un límite NULL. ST_Point puede utilizarse para definir entidades, como pozos petroleros, hitos y sitios de recolección de muestras de agua.
Las funciones que crean un punto son las siguientes:
- ST_Point
- ST_PointFromText (solo Oracle y SQLite)
- ST_PointFromWKB
ST_MultiPoint
Un ST_MultiPoint es un conjunto de ST_Points y, como sus elementos, tiene una dimensión 0. El tipo ST_MultiPoint es simple si ninguno de sus elementos ocupa el mismo espacio de coordenadas. El límite de un ST_MultiPoint es NULL. ST_MultiPoints pueden definir cosas como patrones de transmisión aérea e incidentes del brote de una enfermedad.
Las funciones que crean una geometría multipunto son las siguientes:
- ST_MultiPoint
- ST_MPointFromText (solo Oracle)
- ST_MPointFromWKB
ST_LineString
Un ST_LineString es un objeto unidimensional almacenado como una secuencia de puntos que define una ruta interpolada lineal. El tipo ST_LineString es simple si no se interseca con el interior. Los extremos (el límite) de un tipo ST_LineString cerrado ocupan el mismo punto en el espacio. Un tipo ST_LineString es un anillo si es cerrado y simple. Al igual que otras propiedades inherentes de ST_Geometry de superclase, ST_LineStrings tiene longitud. ST_LineStrings a menudo se utilizan para definir entidades lineales como carreteras, ríos y líneas de alimentación.
Los extremos normalmente forman el límite de un tipo ST_LineString a menos que éste sea cerrado, en cuyo caso el límite es NULL. El interior de ST_LineString es una ruta conectada que está entre los extremos, a menos que esté cerrada y, en tal caso, el interior es continuo.
Entre las funciones que crean cadenas de líneas se incluyen las siguientes:
- ST_LineString
- ST_LineFromText (solo Oracle y SQLite)
- ST_LineFromWKB
- ST_Curve (solo Oracle y SQLite)
ST_MultiLineString
Un ST_MultiLineString es una colección de ST_LineStrings.
El límite de un ST_MultiLineString son los extremos no intersecados de los elementos de ST_LineString. El límite de un ST_MultiLineString es NULL si todos los extremos de todos los elementos se intersecan. Además de las demás propiedades inherentes de ST_Geometry de superclase, ST_MultiLineStrings tiene longitud. ST_MultiLineStrings se usa para definir entidades lineales no contiguas, como arroyos o redes de carreteras.
Las funciones que construyen multicadenas de líneas son las siguientes:
- ST_MultiLineString
- ST_MLineFromText (solo Oracle y SQLite)
- ST_MLineFromWKB
- ST_MultiCurve (solo Oracle)
ST_Polygon
Un ST_Polygon es una superficie de dos dimensiones almacenada como una secuencia de puntos que define el anillo de delimitación exterior y 0 o más anillos interiores. Los ST_Polygons son siempre simples. Los ST_Polygons definen entidades que tienen una extensión espacial, como parcelas de tierra, cuerpos de agua y áreas de jurisdicción.
Este gráfico muestra ejemplos de objetos ST_Polygon: (1) es un ST_Polygon cuyo límite viene definido por un anillo exterior. (2) es un ST_Polygon cuyo límite viene definido por un anillo exterior y dos anillos interiores. El área contenida en los anillos interiores forma parte del exterior del ST_Polygon. (3) es un ST_Polygon permitido, porque los anillos se intersecan en un único punto tangente.
La parte exterior y los anillos interiores definen el límite de un tipo ST_Polygon y el espacio cerrado entre los anillos define el interior de ST_Polygon. Los anillos de un tipo ST_Polygon pueden intersecarse en un punto tangente pero nunca cruzarse. Además de las demás propiedades inherentes de la ST_Geometry de superclase, ST_Polygon tiene área.
Entre las funciones que crean polígonos se incluyen las siguientes:
- ST_Polygon
- ST_PolyFromText (solo Oracle y SQLite)
- ST_PolyFromWKB
- ST_Surface (solo Oracle y SQLite)
ST_MultiPolygon
El límite de un ST_MultiPolygon es la longitud acumulativa del anillo exterior e interior de sus elementos. El interior de un tipo ST_MultiPolygon se define como los interiores acumulados de su elemento ST_Polygons. El límite de los elementos de un tipo ST_MultiPolygon solo se puede intersecar en un punto tangente. Además de las demás propiedades inherentes de la ST_Geometry de superclase, ST_MultiPolygons tiene área. ST_MultiPolygons define las entidades, tales como un estrato de un bosque o una parcela no contigua de tierra, como una cadena de islas del Pacífico.
El gráfico siguiente proporciona ejemplos de ST_MultiPolygon: (1) es un ST_MultiPolygon con dos elementos ST_Polygon. El límite viene definido por los dos anillos exteriores y los tres anillos interiores. (2) es un ST_MultiPolygon con dos elementos ST_Polygon. El límite se define mediante los dos anillos exteriores y los dos anillos interiores. Los dos elementos ST_Polygon se intersecan en un punto de tangente.
Las siguientes funciones crean multipolígonos:
- ST_MultiPolygon
- ST_MPolyFromText (solo Oracle y SQLite)
- ST_MPolyFromWKB
- ST_MultiSurface (solo Oracle)