El conjunto de tipos geométricos propuesto por el entorno SQL con Tipos Geométricos de OGC's se basa en el Modelo OpenGIS de Geometría. En este modelo, cada objeto geométrico tiene las siguientes propiedades generales:
-
Está asociado con un Sistema de Referencia Espacial, que describe el espacio de coordenadas en que el objeto está definido.
-
Pertenece a alguna clase geométrica.
Las clases geométricas definen una jerarquía de la siguiente manera:
-
Geometry
(no instanciable)-
Point
(instanciable) -
Curve
(no instanciable)-
LineString
(instanciable)-
Line
-
LinearRing
-
-
-
Surface
(no instanciable)-
Polygon
(instanciable)
-
-
GeometryCollection
(instanciable)-
MultiPoint
(instanciable) -
MultiCurve
(no instanciable)-
MultiLineString
(instanciable)
-
-
MultiSurface
(no instanciable)-
MultiPolygon
(instanciable)
-
-
-
No es posible crear objetos de clases no instanciables. Se pueden crear objetos de clases instanciables. Todas las clases tienen propiedades, y las clases instanciables pueden tener también aserciones (reglas que definen las instancias de clase válidas).
Geometry
es la clase base. Es una clase abstracta.
Las subclases instanciables de Geometry
están restringidas a
objetos geométricos cero-, uni-, y bi-dimensionales que existen en un espacio de coordenadas bidimensional.
Todas las clases geométricas instanciables son definidas de manera que las instancias
válidas de una clase geométrica sean topológicamente cerradas (es decir, que todas
las geometrías definidas incluyen su límite).
La clase base Geometry
tiene las subclases
Point
, Curve
,
Surface
, y
GeometryCollection
:
-
Point
representa objetos de cero dimensiones. -
Curve
representa objetos unidimensionales, y tiene la subclaseLineString
, con sub-subclasesLine
yLinearRing
. -
Surface
está diseñado para objetos bidimensionales y tiene la subclasePolygon
. -
GeometryCollection
tiene clases especializadas de cero, una y dos dimensiones llamadasMultiPoint
,MultiLineString
, yMultiPolygon
para modelar geometrías correspondientes a colecciones dePoints
,LineStrings
, yPolygons
, respectivamente.MultiCurve
yMultiSurface
han sido introducidas como superclases abstractas que generalizan las interficies de la colección para manejarCurves
ySurfaces
.
Geometry
, Curve
,
Surface
, MultiCurve
, y
MultiSurface
están definidas como clases no instanciables.
Definen un conjunto común de métodos para sus subclases y se incluyen para ser extendidas.
Point
, LineString
,
Polygon
,
GeometryCollection
,
MultiPoint
,
MultiLineString
, y
MultiPolygon
son clases instanciables.
Geometry
es la clase base de la jerarquía. Es una clase
no instanciable, pero tiene unas cuantas propiedades que son comunes para
todos los valores geométricos creados con cualquiera de las subclases de Geometry
.
Estas propiedades están descritas en la siguiente lista. (Algunas subclases en concreto
tienen sus propiedades específicas, descritas más tarde.)
Propiedades de Geometry
Un valor geométrico tiene las siguientes propiedades:
-
Su tipo. Cada geometría pertenece a una de las clases instanciables de la jerarquía.
-
Su SRID, o IDentificador de Referencia eSpacial. Este valor identifica el Sistema de Referencia Espacial asociado a la geometría, que describe el espacio de coordenadas en el que la geometría está definida.
ç En MySQL, el valor SRID es simplemente un entero asociado con el valor de la geometría. Todos los cálculos se hacen asumiendo una geometría euclídea (planar).
-
Sus coordenadas en este Sistema de Referencia Espacial, representadas como números de doble precisión (ocho bytes). Todas las geometrías no vacías incluyen al menos un par de coordenadas (X,Y). Las geometrías vacías no contienen coordenadas.
Las coordenadas están relacionadas con el SRID. Por ejemplo, en diferentes sistemas de coordenadas, la distancia entre dos objetos puede diferir aún cuando los objetos tengan las mismas coordenadas, porque la distancia en sistemas de coordenadas planares y la distancia en sistemas geocéntricos (coordenadas en la superficie de la tierra) son cosas diferentes.
-
Su interior, límite, y exterior.
Cada geometría ocupa una posición en el espacio. El exterior de una geometría es todo el espacio no ocupado por la geometría. El interior es el espacio ocupado por la geometría. El límite es la interfície entre el interior y el exterior de la geometría.
-
Its MBR (Minimum Bounding Rectangle), or Envelope. This is the bounding geometry, formed by the minimum and maximum (X,Y) coordinates:
((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
-
Si el valor es simple o no-simple. Los valores geométricos de tipo (
LineString
,MultiPoint
,MultiLineString
) son o simples, o no-simples. Cada tipo determina sus propias aserciones para ser simple o no-simple. -
Si el valor es cerrado o no cerrado. Los valores geométricos de tipo (
LineString
,MultiString
) son o cerrados o no cerrados. Cada tipo determina sus propias aserciones para ser cerrado o no cerrado. -
Si el valor es vacío o no vacío. Una geometría es vacía si no tiene ningún punto. El exterior, interior, y límite de de una geometría vacía no están definidos (es decir, se representan por un valor
NULL
). Una geometría vacía está definida para ser siempre simple, y tiene un área de 0. -
Su dimensión. Una geometría puede tener una dimensión de −1, 0, 1, o 2:
-
−1 para una geometría vacía.
-
0 para una geometría sin longitud ni área.
-
1 para una geometría con longitud diferente de cero y área igual a cero.
-
2 para una geometría con área diferente de cero.
Los objetos
Point
tienen una dimensión de cero. Los objetosLineString
tienen una dimensión de 1. Los objetosPolygon
tienen una dimensión de 2. Las dimensiones de los objetosMultiPoint
,MultiLineString
, yMultiPolygon
son las mismas que las dimensiones de los elementos que los componen. -
Un Punto
es una geometría que representa una ubicación única en un espacio de coordenadas.
Ejemplos de Point
-
Imagine un mapa a gran escala del mundo con muchas ciudades. Un objeto
Point
podría representar cada ciudad. -
En un mapa de una ciudad, un objeto
Point
podría representar una parada de bus.
Propiedades de Point
-
Valor de la coordenada X.
-
Valor de la coordenada Y.
-
Point
es definido como una geometría cero-dimensional. -
El límite de un
Point
es el conjunto vacío.
Una Curva
es una geometría unidimensional,
normalmente representada por una secuencia de puntos. Las
subclases particulares de Curve
definen el tipo de interpolación
entre puntos. Curve
es una clase no instanciable.
Propiedades de Curve
-
Una
Curva
tiene las coordenadas de sus puntos. -
Una
Curva
está definida como una geometría unidimensional. -
Una
Curva
es simple si no pasa sobre el mismo punto dos veces. -
Una
Curva
es cerrada si su punto inicial es igual a su punto final. -
El límite de una
Curva
cerrada está vacío. -
El límite de una
Curva
no cerrada consiste en sus dos puntos finales. -
Una
Curva
que es simple y cerrada es unAnillo Linear (LinearRing)
.
Una LineString
es una Curva
con interpolación linear entre puntos.
Ejemplos de LineString
-
En un mapa del mundo, los objetos
LineString
podrían representar ríos. -
En un mapa de una ciudad, los objetos
LineString
podrían representar calles.
Propiedades de LineString
-
Un
LineString
tiene coordenadas de segmentos, definidos por cada par consecutivo de puntos. -
Un
LineString
es unaLínea (Line)
si consiste exactamente en dos puntos. -
Un
LineString
es unLinearRing
si es tanto cerrado como simple.
Una Superficie (Surface)
es una geometría bidimensional.
Es una clase no instanciable. Su única subclase instanciable es Polygon
.
Propiedades de Surface
-
Una
superficie
está definida como una geometría bidimensional. -
La especificación OpenGIS define una
Superficie
simple como una geometría que consiste de un único “trozo” que está asociado a un único límite exterior y cero o más límites interiores. -
El límite de una
Superficie
simple es el conjunto de curvas cerradas correspondientes a sus límites exterior e interior.
Un Polígono (Polygon)
es una Superficie
planar
que representa una geometría multicara. Se define por un único límite exterior y cero o más límites interiores,
donde cada límite interior define un agujero en el Polígono
.
Ejemplos de Polygon
-
En un mapa de una región, objetos
Polygon
podrían representar bosques, distritos, etc.
Aserciones de Polygon
-
El límite de un
Polígono
consiste en un conjunto de objetosLinearRing
(es decir, objetosLineString
que son tanto simples como cerrados) que construyen sus límites exterior e interior. -
Un
Polígono
no tiene anillos que se crucen. Los anillos en el límite de unPolígono
pueden interseccionar unPunto
, pero sólo como tangente. -
Un
Polígono
no tiene líneas, picos o valles. -
Un
Polígono
tiene un interior que consiste en un conjunto de puntos conectados. -
Un
Polígono
puede tener agujeros. El exterior de unPolígono
con agujeros no está conectado. Cada agujero define un componente conectado del exterior.
Las aserciones precedentes hacen de un Polígono
una geometría simple.
Una ColecciónDeGeometrías (GeometryCollection)
es una geometría que consiste
en una colección de una o más geometrías de cualquier clase.
Todos los elementos en una GeometryCollection
deben estar en el mismo
Sistema de Referencia Espacial (es decir, en el mismo sistema de coordenadas).
No existe ninguna otra restricción en los elementos de una GeometryCollection
,
aunque las subclases de GeometryCollection
descritas en las siguientes secciones pueden restringir la membresía.
Las restricciones se pueden basar en:
-
Tipo de elemento (por ejemplo, un
MultiPoint
puede contener únicamente elementos de tipoPoint
) -
Dimensión
-
Restricciones en el grado de sobreposición espacial entre elementos
Un MultiPoint
es una colección de geometrías compuesta de elementos
Point
. Los puntos no están conectados ni ordenados de ningún modo.
Ejemplos de MultiPoint
-
En un mapa mundial, un
MultiPoint
podría representar una cadena de pequeñas islas. -
En un mapa de una ciudad, un
MultiPoint
podría representar las oficinas de una empresa.
Propiedades de MultiPoint
-
Un
MultiPoint
es una geometría cerodimensional. -
Un
MultiPoint
es simple si no hay dos de sus valoresPoint
que sean iguales (tengan valores de coordenadas idénticos). -
El límite de un
MultiPoint
es el conjunto vacío.
Una MultiCurva (MultiCurve)
es una colección de geometrías que se compone de elementos
Curve
. MultiCurve
es una clase no instanciable.
Propiedades de MultiCurve
-
Una
MultiCurva
es una geometría unidimensional. -
Una
MultiCurva
es simple si, y únicamente si, todos sus elementos son simples; las únicas interesecciones entre dos elementos cualquiera ocurren en puntos que están en los límites de ambos elementos. -
El límite de una
MultiCurva
se obtiene aplicando la “regla unión módulo 2 (mod 2 union rule)” (también conocida como la “regla par-impar (odd-even rule)”): Un punto está en el límite de unaMultiCurva
si está en los límites de un número impar de elementos deMultiCurva
. -
Una
MultiCurva
es cerrada si todos sus elementos son cerrados. -
El límite de una
MultiCurva
cerrada es siempre vacío.
Una MultiLineString
es una colección de geometrías
MultiCurve
compuesta de elementos LineString
.
Ejemplos de MultiLineString
-
En el mapa de una región, una
MultiLineString
podría representar un sistema de ríos o de autopistas.
Una MultiSuperficie (MultiSurface)
es una colección de geometrías
compuesta de elementos de Superficie. MultiSurface
es
una clase no instanciable. Su única subclase instanciable es MultiPolygon
.
Aserciones de MultiSurface
-
Dos superficies de
MultiSurface
no tienen interiores que se interseccionen. -
Dos elementos de
MultiSurface
tienen límites que interseccionan como máximo en un número finito de puntos.
Un MultiPolígono (MultiPolygon)
es un objeto
MultiSurface
compuesto de elementos
Polygon
.
Ejemplos de MultiPolygon
-
En el mapa de una región, un
MultiPolygon
podría representar un sistema de lagos.
Aserciones de MultiPolygon
-
Un
MultiPolygon
no tiene dos elementosPolygon
con interiores que se interseccionen. -
Un
MultiPolygon
no tiene dos elementosPolygon
que se crucen (los cruces están también prohibidos por la aserción previa), o que se toquen en un número infinito de puntos. -
Un
MultiPolygon
no debe tener líneas de corte, valles, o picos. UnMultiPolygon
es un conjunto de puntos regular y cerrado. -
Un
MultiPolygon
que tenga más de unPolygon
tiene un interior que no está conectado. El número de componentes conectados del interior de unMultiPolygon
es igual al número de valoresPolygon
en elMultiPolygon
.
Propiedades de MultiPolygon
-
Un
MultiPolygon
es una geometría bidimensional. -
El límite de un
MultiPolygon
es un conjunto de curvas cerradas (valoresLineString
) que corresponden a los límites de sus elementosPolygon
. -
Cada
Curva
en el límite de unMultiPolygon
está en el límite de exactamente un elementoPolygon
. -
Cada
Curva
en el límite de un elementoPolygon
está en el límite delMultiPolygon
.