Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Tipos de datos espaciales
1. Tipos de datos espaciales
Enrique Catala Bañuls
Data Platform Architect
Solid Quality Mentors
ecatala@solidq.com
2. Agenda
Tipos de datos espaciales
• Escenario
• Modelos espaciales
•
•
Geodésico
Planar
• Tipos de datos espaciales en SQL Server 2008
• Geometry
• Geography
• Usabilidad
• Indexación
3. Tipos de datos espaciales
Escenario
• Ejemplos de uso de tipos de datos espaciales:
•
•
•
Un minorista web puede mostrar las localizaciones de
todas sus tiendas como puntos en un mapa y encontrar la
mas cercana a un código postal concreto
Un jefe de ventas puede definir regiones geográficas de
ventas y usarlas para encontrar las ventas más
representativas, así como realizar análisis de rendimiento
de ventas
Un arquitecto puede crear planos para una nueva
construcción y solapar dichos planos dentro del mapa del
sitio propuesto
4. Tipos de datos espaciales
Escenario
• (continuación de ejemplos)
•
Un conductor puede encontrar la distancia entre dos
puntos y planificar la ruta
•
Una inmobiliaria puede rápidamente identificar
propiedades que concuerden con los requerimientos del
clientes (casas de 90 metros cuadrados cerca de las
Lagunas del Ruidera)
•
Una aplicación móvil puede encontrar gasolineras a menos
de 100 metros de donde se encuentra
5. Tipos de datos espaciales
Escenario
• Mas de forma general:
•
•
•
•
•
•
•
•
Información enfocada al consumidor y basada en la
localización
Desarrollo y administración basada en el cliente
Planificación, análisis y datos relacionados con el entorno
Análisis económicos y financieros en comunidades
Análisis de desarrollo de planes gubernamentales
Análisis de segmentación de mercado
Análisis, estudio e investigación de diseño
Análisis y desarrollo de inmobiliarias
6. Modelos Espaciales
Vistazo
• Geodésico
•
El problema de describir una localización planetaria es que
la superficie no es plana
•
Una representación fiel de la Tierra es normalmente
representada como un globo, cuyas localizaciones van
descritas mediante latitud y longitud, que se miden en
grados desde el ecuador y el meridiano de Greenwich
respectivamente
8. Modelos espaciales
Vistazo
• Planar
•
Es mucho mas fácil trabajar en superficies de 2
dimensiones
• Trabajar con datos geospaciales en dos dimensiones ,
requiere una proyección de los objetos geográficos
o Ej.. Proyección Mercatore
o Posee distorsiones
•
Los modelos planos trabajan bien para áreas geográficas
pequeñas, como países pequeños, estados y ciudades, o
para planos de interior
10. Soporte Espacial SQL 2008
Tipos de datos
• SQL Server 2008 Soporta ambos modelos mediante
dos tipos de datos diferentes
•
•
geography (modelo geodésico)
geometry (modelo planar)
• Implementados como SQLCLR UDT
•
Ambos tipos de datos poseen propiedades y métodos que
puedes utilizar para realizar operaciones espaciales, como
calcular distancias, encontrar intersecciones,…
11. Soporte Espacial SQL 2008
Tipos de datos Espaciales
• Tipo de datos geometry
•
Conforme al estándar Open Geospatial Consortium (OGC) de
características para SQL en su especificación 1.1.0.
o http://www.opengeospatial.org/standards/gml
• Tipo de datos geography
•
Guarda datos elipsoidales (tierra redonda) como latitudes GPS y
coordenadas longitudinales
• Ambos soportan once objetos espaciales
•
Solo siete de ellos son instanciables
12. Soporte Espacial SQL 2008
Objetos Espaciales
Jerarquía en la que se basan tanto los tipos de datos geometry y geography . Los
tipos instanciables por geometry y geography están en color azul.
13. Soporte Espacial SQL 2008
Diferencias de coordenadas y medidas
• Planar
•
•
Coordenadas dadas en “unidades”
Las medidas de distancias y áreas se dan en la misma
unidad de medida que las coordenadas
o Ej.: Usando tipo de datos geometry, la distancia entre (2, 2) y (5, 6)
es 5 unidades, sean las que sean
declare @box as geometry =
geometry::STGeomFromText('POLYGON ((0 0, 150
0, 150 150, 0 150, 0 0))', 0)
select @box.STAsText()
14. Soporte Espacial SQL 2008
Diferencias de coordenadas y medidas
• Geodésica
•
•
Las coordenadas se dan en grados de longitud y latitud
(adaptadas al estándar desde RC0)
Distancias y áreas son normalmente metros y metros
cuadrados
o La medida puede depender del índice de referencia espacial (SRID)
de la instancia geography. La unidad de medida mas usual para el
tipo geography son los metros
declare @home as geography =
geography::STPointFromText('POINT(45.32 9.07)', 4326)
15. Soporte Espacial SQL 2008
Orientación
• En un sistema elipsoidal, un polígono no tiene
significado, o no tiene sentido sin orientación
•
Ej.: el anillo sobre el ecuador describe el hemisferio norte o
el sur?
16. Soporte Espacial SQL 2008
Orientación
• Para usar el tipo de datos geography correctamente,
debemos especificar tanto la orientación del anillo
como su localización exacta (sentido de las agujas del
reloj)
17. Soporte Espacial SQL 2008
Limitaciones del tipo de datos geography
• Cada instancia geográfica debe ajustarse dentro de
un único hemisferio.
•
No podemos almacenar objetos mas grandes que un
hemisferio
• Cualquier instancia que represente un objeto mayor
que un hemisferio lanzara una excepción
ArgumentException.
19. Soporte Espacial SQL 2008
Limitaciones del tipo de datos geography
• Los métodos del tipo de datos geography que
requieren la entrada de dos instancias geography
devolverán null si el resultado no cabe en un único
hemisferio
20. Soporte Espacial SQL 2008
SRID
• SRID: identificador de referencia espacial
• Se corresponde tanto con un sistema de referencia
espacial para mapeos de tipo “tierra plana” así como
mapeos de “tierra redonda”
• El sistema de identificación de referencia espacial se
define por el European Petroleum Survey Group
(EPSG) standard, que es un conjunto de estándares
desarrollados para almacenamiento de datos
cartográficos y posicionamiento. Este estándar es
propiedad de los productores de gas y combustible
(OGP) y del comité de posicionamiento.
21. Soporte Espacial SQL 2008
SRID
• Las instancias geometry tienen por defecto SRID = 0
• Las instancias geography deben utilizar los SRIDs
soportados
•
Por defecto es 4326 (WGS84)
select * from sys.spatial_reference_systems
• Solo las instancias espaciales con el mismo SRID
pueden operar entre si cuando utilizas métodos
espaciales con tus datos
• Una columna puede utilizar objetos con diferentes
SRIDs
22. Uso
Construcción de instancias
• Puedes construir instancias de tipos de datos
geometry introduciéndolos con formato Well-Known
Text (WKT)
•
•
Haciendo un cast a la cadena
Invocando el método estático STGeomFromString
o O usando formas especializadas STxxxFromString. Ej.:
STPolyFromString
declare @box as geometry =
geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0)
select @box.STAsText()
declare @box2 as geometry =
cast('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))' as geometry)
select @box2.STAsText()
23. Uso
Construcción de instancias
• También se soporta el formato Well-Known Binary
(WKB)
•
STFromGeomFromWKB(<wkb>, <srid>)
• Se soporta un subconjunto de GML
•
•
GeomFromGml(<gml>, <srid>)
GML es un formato XML
o http://www.opengis.net/gml
24. Uso
Construcción de instancias
• Una anotación sobre polígonos:
•
•
•
•
Pueden tener “agujeros”
El anillo exterior es el que manda (el perímetro)
Los anillos internos definen los agujeros
El punto de partida y el de final son iguales
26. Uso
Métodos y propiedades
• Algunas propiedades:
• STStartPoint
• STEndPoint
• STX (Solo POINT)
• STY (Solo POINT)
• STCentroid (POLY y MULTIPOLY solo)
• STArea (POLY y MULTIPOLY solo)
27. Uso
Métodos y propiedades
• Algunos métodos:
• STIntersect
• STTouches (solo para geometry)
• STOverlaps (solo para geometry)
• STContains
o Opposite: STWithin
•
•
STIntersects
STUnion
29. Indexación
Vistazo
• En SQL Server 2008, los índices espaciales se definen
como árboles B
•
•
•
Los índices han de representar la información
bidimensional mediante esos árboles B
SQL Server 2008 implementa una descomposición del
espacio de forma uniforme
El proceso de indexación, descompone el espacio en una
jerarquía de rejillas de 4 niveles
o Estos niveles se llaman level 1 (nivel superior), level 2, level 3 y level
4.
31. Indexación
Proceso
• Numeración de celdas usando el algoritmo Hilvert
filling-space curve
• Tessellation:
• Regla del cubrimiento
• Regla de celdas por objeto
• Regla de celda mas profunda
33. Indexación
Regla de celdas por objeto
• Consiste en evitar que se siga el proceso de
clasificación del objeto en celdas, mientras no se
supere un nº de celdas máximo por objeto
• Solo la 15 si CELLS_PER_OBJECT = 8
34. Indexación
Regla de la celda mas profunda
• Cada celda, pertenece a la celda del nivel superior
35. Indexación
Vistazo
• Un índice espacial puede ser creado únicamente
sobre una columna de tipo geometry o geography.
• Los índices espaciales solo pueden definirse sobre
tablas que poseen clave primaria
• Los índices espaciales no pueden especificarse sobre
vistas indexadas
38. Links de SQL Server 2008
• Site de SQL Server 2008
•
http://www.microsoft.com/sql/2008/
• Ejemplos de SQL Server 2008
•
http://www.codeplex.com/SqlServerSamples
39. SQL SERVER 2008
TIPOS DE DATOS ESPACIALES
¿ PREGUNTAS ?
ECATALA@SOLIDQ.COM
http://blogs.solidq.com/ES/ElRinconDelDBA/default.aspx