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:
-
Pointrepresenta objetos de cero dimensiones. -
Curverepresenta objetos unidimensionales, y tiene la subclaseLineString, con sub-subclasesLineyLinearRing. -
Surfaceestá diseñado para objetos bidimensionales y tiene la subclasePolygon. -
GeometryCollectiontiene clases especializadas de cero, una y dos dimensiones llamadasMultiPoint,MultiLineString, yMultiPolygonpara modelar geometrías correspondientes a colecciones dePoints,LineStrings, yPolygons, respectivamente.MultiCurveyMultiSurfacehan sido introducidas como superclases abstractas que generalizan las interficies de la colección para manejarCurvesySurfaces.
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
Pointtienen una dimensión de cero. Los objetosLineStringtienen una dimensión de 1. Los objetosPolygontienen una dimensión de 2. Las dimensiones de los objetosMultiPoint,MultiLineString, yMultiPolygonson 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
Pointpodría representar cada ciudad. -
En un mapa de una ciudad, un objeto
Pointpodría representar una parada de bus.
Propiedades de Point
-
Valor de la coordenada X.
-
Valor de la coordenada Y.
-
Pointes definido como una geometría cero-dimensional. -
El límite de un
Pointes 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
Curvatiene las coordenadas de sus puntos. -
Una
Curvaestá definida como una geometría unidimensional. -
Una
Curvaes simple si no pasa sobre el mismo punto dos veces. -
Una
Curvaes cerrada si su punto inicial es igual a su punto final. -
El límite de una
Curvacerrada está vacío. -
El límite de una
Curvano cerrada consiste en sus dos puntos finales. -
Una
Curvaque 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
LineStringpodrían representar ríos. -
En un mapa de una ciudad, los objetos
LineStringpodrían representar calles.
Propiedades de LineString
-
Un
LineStringtiene coordenadas de segmentos, definidos por cada par consecutivo de puntos. -
Un
LineStringes unaLínea (Line)si consiste exactamente en dos puntos. -
Un
LineStringes unLinearRingsi 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
superficieestá definida como una geometría bidimensional. -
La especificación OpenGIS define una
Superficiesimple 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
Superficiesimple 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
Polygonpodrían representar bosques, distritos, etc.
Aserciones de Polygon
-
El límite de un
Polígonoconsiste en un conjunto de objetosLinearRing(es decir, objetosLineStringque son tanto simples como cerrados) que construyen sus límites exterior e interior. -
Un
Polígonono tiene anillos que se crucen. Los anillos en el límite de unPolígonopueden interseccionar unPunto, pero sólo como tangente. -
Un
Polígonono tiene líneas, picos o valles. -
Un
Polígonotiene un interior que consiste en un conjunto de puntos conectados. -
Un
Polígonopuede tener agujeros. El exterior de unPolígonocon 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
MultiPointpuede 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
MultiPointpodría representar una cadena de pequeñas islas. -
En un mapa de una ciudad, un
MultiPointpodría representar las oficinas de una empresa.
Propiedades de MultiPoint
-
Un
MultiPointes una geometría cerodimensional. -
Un
MultiPointes simple si no hay dos de sus valoresPointque sean iguales (tengan valores de coordenadas idénticos). -
El límite de un
MultiPointes 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
MultiCurvaes una geometría unidimensional. -
Una
MultiCurvaes 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
MultiCurvase 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 unaMultiCurvasi está en los límites de un número impar de elementos deMultiCurva. -
Una
MultiCurvaes cerrada si todos sus elementos son cerrados. -
El límite de una
MultiCurvacerrada 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
MultiLineStringpodrí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
MultiSurfaceno tienen interiores que se interseccionen. -
Dos elementos de
MultiSurfacetienen 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
MultiPolygonpodría representar un sistema de lagos.
Aserciones de MultiPolygon
-
Un
MultiPolygonno tiene dos elementosPolygoncon interiores que se interseccionen. -
Un
MultiPolygonno tiene dos elementosPolygonque 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
MultiPolygonno debe tener líneas de corte, valles, o picos. UnMultiPolygones un conjunto de puntos regular y cerrado. -
Un
MultiPolygonque tenga más de unPolygontiene un interior que no está conectado. El número de componentes conectados del interior de unMultiPolygones igual al número de valoresPolygonen elMultiPolygon.
Propiedades de MultiPolygon
-
Un
MultiPolygones una geometría bidimensional. -
El límite de un
MultiPolygones un conjunto de curvas cerradas (valoresLineString) que corresponden a los límites de sus elementosPolygon. -
Cada
Curvaen el límite de unMultiPolygonestá en el límite de exactamente un elementoPolygon. -
Cada
Curvaen el límite de un elementoPolygonestá en el límite delMultiPolygon.