¿Qué es el tipo de almacenamiento ST_Geometry?
El tipo de datos ST_Geometry es un tipo de datos definido por usuario (UDT) que le permite definir columnas que almacenan datos espaciales.
ST_Geometry en sí misma es una superclase abstracta sin instancias creadas. Sin embargo, se pueden crear. La creación de una instancia de tipo de datos se puede definir como una columna de tabla y posee valores de su tipo insertados en ella.
Aunque puede definir una columna como tipo ST_Geometry, no puede insertar valores ST_Geometry en la columna ya que no se pueden crear instancias. En su lugar, debe insertar los valores de las subclases.
El siguiente gráfico muestra la jerarquía del tipo de datos ST_Geometry y las subclases.
Subclases
Las subclases de ST_Geometry están divididas en dos categorías: las subclases de geometría base y las subclases de conjunto homogéneo. Las geometrías base incluyen ST_Point, ST_LineString y ST_Polygon, mientras que los conjuntos homogéneos incluyen ST_MultiPoint, ST_MultiLineString y ST_MultiPolygon. Como lo indica su nombre, los conjuntos homogéneos son conjuntos de geometrías base. Además, para compartir las propiedades de geometría base, los conjuntos homogéneos poseen algunas de sus propias propiedades.
Cada subclase almacena el tipo de geometría que implica su nombre; por ejemplo, ST_MultiPoint almacena multipuntos. Una lista de las subclases y sus descripciones se encuentra en la siguiente tabla:
Subtipo |
Descripción |
---|---|
ST_Point |
|
ST_LineString |
|
ST_Polygon |
|
ST_MultiPoint |
|
ST_MultiLineString |
|
ST_MultiPolygon |
|
Observe que cada subclase hereda las propiedades de la superclase ST_Geometry pero también posee sus propias propiedades. Las funciones que operan en el tipo de datos ST_Geometry aceptan cualquiera de los tipos de entidad de subclase. Sin embargo, algunas funciones se han definido en el nivel de subclase y solo aceptan ciertas subclases. Por ejemplo, la función ST_GeometryN solo toma los valores del subtipo ST_MultiLinestring, ST_MultiPoint o ST_MultiPolygon como entrada.
Para descubrir la subclase de un tipo ST_Geometry, puede utilizar la función ST_GeometryType. La función ST_GeometryType toma una ST_Geometry y devuelve la subclase con instancia creada en forma de cadena de caracteres. Para obtener información acerca de cuántos elementos de geometría base existen en un conjunto homogéneo, puede utilizar la función ST_NumGeometries, que toma un conjunto homogéneo y devuelve la cantidad de elementos de geometría base que contiene.