SQL Server 2008 presenta los nuevos tipos de datos geometry y geography, destinados al almacenamiento de datos espaciales.

Se agregan dos tipos de datos puesto que se nos presenta la posibilidad de trabajar con los datos espaciales de dos formas: plana y elipsoidal

En ambos casos, el tipo de datos espaciales almacenados, se refieren a tipos de datos en 2 Dimensiones; la diferencia radica en la superficie donde se encuentran ubicados los datos a almacenar: mientras que el tipo de datos geometry está destinado a almacenar datos sobre una superficie plana (tierra plana), los datos geography están preparados para trabajar sobre una superficie elipsoidal (tierra-redonda).

Ambos tipos de datos están disponibles como nuevos tipos de datos del sistema, de forma que pueden utilizarse directamente en las nuevas BBDD con compatibilidad 100. Además, están implementados como tipos de datos CLR en SQL Server y como novedad, podemos utilizarlos desde nuestras aplicaciones cliente utilizando su ensamblado (Microsoft.SqlServer.SqlDataTypes) para mejorar la cohesión entre ambas.

Geography está basado en el tipo de datos geometry y es un subconjunto del mismo, por lo que no todos los métodos de geometry se pueden aplicar sobre geography.

Entendiendo los tipos de datos espaciales

Como ya hemos introducido, los nuevos tipos de datos geometry y geography sirven para almacenar datos en 2 Dimensiones. La forma de almacenar dichos datos viene dada por los tipos de datos Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon y GeometryCollection; los cuales pueden verse jerarquizados en la siguiente figura:

Nuevos tipos de datos Espaciales en SQL Server 2008 (I)

NOTA: Azul representa los tipos instanciables (tanto por geometry como por geography)

  • Point: Representa un punto 0-dimensional que indica una localización (x,y) . Puede contener coordenada Z y medida asociada (M) ,pero puesto que hablamos de información en 2D, es la aplicación cliente la que ha de dar significado a esta información extra.

declare @g as geometry

set @g = geometry::STGeomFromText(‘POINT(6 4 7)’,0);

SELECT @g.STX as X , @g.STY as Y, @g.Z as Z, @g.M as M

  • MultiPoint: Representa un conjunto de puntos

DECLARE @g geometry;

SET @g = geometry::STMPointFromText(‘MULTIPOINT((2 3), (7 8 9.5))’, 23);

— Visualización de los datos almacenados

SELECT @g.STGeometryN(1).STAsText();

  • LineString: Representa la línea formada por un conjunto de puntos dado.
    Nuevos tipos de datos Espaciales en SQL Server 2008 (I)
    La 3 está cerrada y además es un anillo

    La 4 está cerrada pero no es un anillo, puesto que la línea intersecta consigo misma

DECLARE @g geometry;

SET @g = geometry::STGeomFromText(‘LINESTRING(1 1 NULL 0, 2 4 NULL 12.3, 3 9 NULL 24.5)’, 0);

 

  • MultiLineString: Representa un conjunto de LineStrings

    Nuevos tipos de datos Espaciales en SQL Server 2008 (I)

DECLARE @g geometry; SET @g = geometry::Parse(‘MULTILINESTRING((0 5, 1 1), (7 8, 6 4))’);
  • Polygon: Representa el polígono formado por un conjunto de puntos dado.

Nuevos tipos de datos Espaciales en SQL Server 2008 (I)

declare @g geography = ‘POLYGON((0 0,0 10,0 20,0 30, 0 40, 50 40,50 30 ,50 20, 50 10, 50 0, 0 0))’

NOTA: En este caso, estamos ante un polígono en un espacio euclídeo, por lo que su representación gráfica varia un poco si se muestra sobre un mapa redondo. Por simplicidad, se ha mostrado en un espacio plano.

  • MultiPoligon: Representa un conjunto de polígonos.

Nuevos tipos de datos Espaciales en SQL Server 2008 (I)

DECLARE @g geometry;

SET @g = geometry::Parse(‘MULTIPOLYGON(((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 1, 1 1)), ((9 9, 9 10, 10 9, 9 9)))’);

SELECT @g.STGeometryN(2).STAsText();

  • GeomCollection: Representa un conjunto de cero a mas elementos de los tipos anteriores

Algo importante a tener en cuenta, es que todas las instancias espaciales poseen un identificador de referencia espacial (SRID) que se corresponde con el sistema espacial de referencia utilizado ( elipsoidal o plano ). Pese que una columna de tipo de datos espacial puede contener información sobre instancias espaciales con diferentes SRID´s, solo se van a poder realizar operaciones entre aquellas instancias que poseen el mismo SRID. Por defecto, se asume que el SRID de los datos geometry es 0 , mientras que el de los datos geography ha de ser un SRID válido según el estándar EPSG, y que por defecto es 4326 ( sistema de referencia WGS 84 ).

Gracias al SRID se pueden realizar cálculos de intersección, áreas, extracción de distancias,…sobre los datos espaciales almacenados. Esa es la razón por la cual solo se pueden aplicar métodos de cálculo espacial a instancias que posean el mismo sistema de referencia.

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Leer más

Power BI Dataflows: Machine Learning en dos clicks!

En esta entrada continuaremos con la saga "en dos clicks", en la entrada anterior explicamos como hacer análisis de sentimiento en dos clicks con Power BI dataflows y ahora es el turno de mostrar cómo crear modelos de machine learning de forma automática utilizando la nueva funcionalidad abierta a través de los Power BI Dataflows.