SlideShare una empresa de Scribd logo
1 de 7
4
Definiendo
colecciones
geométricas
OBJETIVOS
•Construir geometrías como multipoint, multiline, y multipolygon.
•Describir la forma de construir un punto de orientación.
•Identificar los constructores y métodos de SDO_GEOMETRY.
Este es el primer ejemplo de una colección geometría. Una colección es una geometría
que contiene varios elementos. En la figura se puede apreciar una colección de tipo
multipunto. Para una multipunto, el tipo de elemento es 1, y la interpretación corresponde
con el número de puntos que pertenecen a la colección.
Nota: SDO_GTYPE para esta geometría es 2005 (multipunto 2D). Recuerda que
SDO_GTYPE es el primer campo del objeto SDO_GEOMETRY, el cual describe toda la
geometría.
1 MULTIPOINT
Ordinate Offset Element
Type
Interpretation
1 1 5
Número de puntos que forman
parte de la colección.
El SDO_GTYPE 2005 indica que se trata de un elemento de tipo multipunto de dos
dimensiones.
El valor de la interpretación en el primer triplete SDO_ELEM_INFO_ARRAY define el número
de puntos que formarán parte de la colección.
SDO_GEOMETRY (2005, NULL, NULL,
SDO_ELEM_INFO_ARRAY (1,1,2, 1,1,1, 3,1,1),
SDO_ORDINATE_ARRAY (65,5, 70,7))
2 MULTILINESTRING
También es posible tener una colección de linestring s; siempre y cuando estas no se
encuentren conectadas entre si.
En la figura se muestra, la colección de varias polilineas (linestring s). Para cada elemento de
la colección se tiene un valor triple en el campo de SDO_ELEM_INFO. En el ejemplo la línea
recta posee un triplete con los valores (1,2,1) y la segunda línea tiene un triplete de (7,2,1).
Nota: SDO_GTYPE para esta geometría es 2006 (multilinestring).
SDO_GEOMETRY (
2006, NULL, NULL,
SDO_ELEM_INFO_ARRAY (1,2,1, 5,2,1),
SDO_ORDINATE_ARRAY (50,15, 55,15,
60,15,
65,15))
3 MULTIPOLYGON
En ejemplo, se ejemplifica la colección MultiPolygon. Para un MultiPolygon, cada elemento
de la colección contiene un valor triple en el campo de SDO_ELEM_INFO; el pentágono tiene
un triplete (1,1003,1) y el triplete del rectángulo optimizado es (13,1003,3).
Un ejemplo real del uso de este tipo de colecciones es como el estado de Hawai se puede
representar utilizando un MultiPolygon.
El SDO_GTYPE 2007 indica que se trata de un MultiPolygon
El tipo de elemento de 1003 indica un polígono anillo exterior.
SDO_GEOMETRY (
2007, NULL, NULL,
SDO_ELEM_INFO_ARRAY (1,1003,1, 11,1003,3),
SDO_ORDINATE_ARRAY (50,105, 55,105, 60,110,
50,110, 50,105, 62,108,
65,112))
4 ORIENTED POINT (PUNTO ORIENTADO)
Un punto orientado (oriented point) puede ser utilizado en la visualización de mapas y otras
aplicaciones de visualización que incluyen símbolos
El vector de orientación se utiliza para orientar la simbología y / o texto para el etiquetado en
la cartografía y las aplicaciones de visualización. Por ejemplo, puedes usar un vector de
orientación para mostrar una etiqueta de texto o una imagen orientada a un ángulo
determinado.
El campo de SDO_ELEM_INFO para un punto de orientación contiene dos tripletes.
El primer triplete:
coordenadas de desplazamiento: 0; ya que es el primer punto.
Tipo de elemento: Un tipo de elemento de 1 para denotar un que se trata de un punto.
Interpretación: Una interpretación con valor 1 para designar a un único punto.
El segundo triplete:
coordenadas de desplazamiento: El elemento de compensación para el vector de
orientación
Tipo de elemento: Un tipo de elemento de 1 para denotar un punto.
Interpretación: Una interpretación con valor 0 para especificar que se trata de un vector
de orientación.
La ubicación del punto de partida es (71, 42).
Se esta representando un símbolo asociado con el punto que se orienta a lo largo de un
vector (71, 42) hasta(72, 43) formando un ángulo de 45 grados.
SDO_GEOMETRY(2001, NULL, NULL,
SDO_ELEM_INFO_ARRAY(1,1,1, 3,1,0),
SDO_ORDINATE_ARRAY(71, 42,
1, 1))
Los puntos orientados deben de poseer coordenadas para el punto que ha de ser
almacenado, así como un conjunto de coordenadas que son relativas al punto
especificado. Teniendo en cuenta las coordenadas del vector de orientación (i, j), la
ecuación siguiente se puede utilizar para calcular el ángulo de orientación:
Ángulo = arctan (j / i)
En el ejemplo el vector tendría un valor de arctan (1 / 1) = 45 grados.
Reglas
•Un punto 2D tiene un vector de orientación 2D.
•Un punto 2D con un sistema de referencia lineal (LRS) tiene un vector de orientación 2D.
•Un punto 3D tiene un vector de orientación 3D.
•Un punto en 3D con una medida de LRS tiene un vector de orientación 3D.
5 CONSTRUCTORES SDO_GEOMETRY
Los objetos SDO_GEOMETRY pueden ser creados utilizando diferentes constructores.
Un constructor puede ser cualquiera de los siguientes:
SQL Multimedia (SQL/MM) Well-Known Text (WKT) el cual puede ser una cadena de
caracteresen el formato “character large object” (CLOB) o en el formato VARCHAR2
SQL/MM Well-Known Binary (WKB) el cual posee el formato binary large object (BLOB)
.
Los constructores devuelven un objeto SDO_GEOMETRY.
Formatos de constructores:
Estos ejemplos muestran el uso de los constructores que utilizan SDO_GEOMETRY
bajo SQL / MM WKT; adicionalmente se presenta su equivalente como lo habíamos
trabajado en la unidad anterior.
1. En este ejemplo se toma una cadena WKT como entrada para representar un
polígono.. Utilizando WKT debemos de tener separados por espacios los diferentes
grupos de coordenadas
2. En este ejemplo se incluye un sistema de referencia espacial el cual nos permitirá
rellenar el valor SDO_SRID del objeto SDO_GEOMETRY.
6 PRIMEROS MÉTODOS EN SDO_GEOMETRY
El tipo de objeto SDO_GEOMETRY dispone de una serie de métodos que nos
permiten recuperar información acerca de un objeto en particular.
GET_GTYPE()
El método GET_GTYPE() devuelve el tipo de geometría, la cual se encuentra
especificada en el valor de SDO_GTYPE.
SELECT g.geom.get_gtype() state_gtype
FROM geod_states g
WHERE g.state = 'Delaware';
STATE_GTYPE
-----------
3
Nota: Cada vez que se accede a un método o un atributo asociado a un objeto, se debe
utilizar un alias de la tabla.
En el ejemplo, se utiliza el método de SDO_GEOMETRY GET_GTYPE. El alias de la
tabla que es utilizado en este ejemplo es “g”; el cual esta asociado con la tabla
geod_states.
GET_DIMS()
Devuelve la dimension de un objeto tal y como se especifica en su valor SDO_GTYPE
SELECT s.geom.get_dims() state_dims
FROM geod_states s
WHERE s.state = 'Delaware';
STATE_DIMS
----------
2
Otros métodos para objetos SDO_GEOMETRY
GET_WKB():
Devuelve la geometria en formato WKB
GET_WKT():
Devuelve la geometria en formato WKT
ST_CoordDim():
Devuleve la dimension de una geometria; es un metodo analogo a GET_DIMS().
ST_IsValid():
Se encarga de verificar si una geometria es valida.Devuelve 1 s I es valida, en caso
contraio devuleve 0.
set long 500;
SELECT a.geom.GET_WKT()
FROM (SELECT SDO_GEOMETRY(2003, 8307, NULL,
SDO_ELEM_INFO_ARRAY(1, 1003, 1),
SDO_ORDINATE_ARRAY(146,66, 148,66,
148,68, 146,68,
146,66)) geom
FROM dual) a;
A.GEOM.GET_WKT()
----------------
POLYGON ((146.0 66.0, 148.0 66.0, 148.0 68.0, 146.0
68.0, 146.0 66.0))
SELECT a.geom.ST_COORDDIM()
FROM (SELECT SDO_GEOMETRY(2003, 8307, NULL,
SDO_ELEM_INFO_ARRAY(1, 1003, 1),
SDO_ORDINATE_ARRAY(146,66, 148,66, 148,68,
146,68, 146,66)) geom
FROM dual) a;
SELECT a.geom.ST_IsValid()
FROM (SELECT SDO_GEOMETRY(2003, 8307, NULL,
SDO_ELEM_INFO_ARRAY(1, 1003, 1),
SDO_ORDINATE_ARRAY(146,66, 148,66, 148,68,
146,68, 146,66)) geom
FROM dual) a;
1
2
Otro método que nos permite checar la validez de una geometría es:
SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT

Más contenido relacionado

La actualidad más candente

Pertemuan 6 Infrastruktur Datawarehouse
Pertemuan 6 Infrastruktur DatawarehousePertemuan 6 Infrastruktur Datawarehouse
Pertemuan 6 Infrastruktur DatawarehouseEndang Retnoningsih
 
SQL - DML and DDL Commands
SQL - DML and DDL CommandsSQL - DML and DDL Commands
SQL - DML and DDL CommandsShrija Madhu
 
All data models in dbms
All data models in dbmsAll data models in dbms
All data models in dbmsNaresh Kumar
 
Geodetic systems (earth, ellipsoid)
Geodetic systems (earth, ellipsoid)Geodetic systems (earth, ellipsoid)
Geodetic systems (earth, ellipsoid)Md. Tamim Haider
 
GIS.INTRODUCTION TO GIS PACKAGES &GEOGRAPHIIC ANALYSIS
GIS.INTRODUCTION TO GIS PACKAGES &GEOGRAPHIIC ANALYSISGIS.INTRODUCTION TO GIS PACKAGES &GEOGRAPHIIC ANALYSIS
GIS.INTRODUCTION TO GIS PACKAGES &GEOGRAPHIIC ANALYSISTessaRaju
 
Slide 2 data models
Slide 2 data modelsSlide 2 data models
Slide 2 data modelsVisakh V
 
Materi struktur hirarki basis data
Materi struktur hirarki basis dataMateri struktur hirarki basis data
Materi struktur hirarki basis dataMutiara Ayu
 
Database Design and Normalization Techniques
Database Design and Normalization TechniquesDatabase Design and Normalization Techniques
Database Design and Normalization TechniquesNishant Munjal
 
Lect 7 & 8 types of vector data model-gis
Lect 7 & 8 types of vector data model-gisLect 7 & 8 types of vector data model-gis
Lect 7 & 8 types of vector data model-gisRehana Jamal
 
Database Management - Lecture 2 - SQL select, insert, update and delete
Database Management - Lecture 2 - SQL select, insert, update and deleteDatabase Management - Lecture 2 - SQL select, insert, update and delete
Database Management - Lecture 2 - SQL select, insert, update and deleteAl-Mamun Sarkar
 
TYBSC IT PGIS Unit III Chapter II Data Entry and Preparation
TYBSC IT PGIS Unit III Chapter II Data Entry and PreparationTYBSC IT PGIS Unit III Chapter II Data Entry and Preparation
TYBSC IT PGIS Unit III Chapter II Data Entry and PreparationArti Parab Academics
 

La actualidad más candente (20)

Pertemuan 6 Infrastruktur Datawarehouse
Pertemuan 6 Infrastruktur DatawarehousePertemuan 6 Infrastruktur Datawarehouse
Pertemuan 6 Infrastruktur Datawarehouse
 
SQL - DML and DDL Commands
SQL - DML and DDL CommandsSQL - DML and DDL Commands
SQL - DML and DDL Commands
 
4b- Output Primitif.ppt
4b- Output Primitif.ppt4b- Output Primitif.ppt
4b- Output Primitif.ppt
 
Er diagram
Er diagramEr diagram
Er diagram
 
Sql operators & functions 3
Sql operators & functions 3Sql operators & functions 3
Sql operators & functions 3
 
All data models in dbms
All data models in dbmsAll data models in dbms
All data models in dbms
 
rdbms-notes
rdbms-notesrdbms-notes
rdbms-notes
 
Geodetic systems (earth, ellipsoid)
Geodetic systems (earth, ellipsoid)Geodetic systems (earth, ellipsoid)
Geodetic systems (earth, ellipsoid)
 
GIS.INTRODUCTION TO GIS PACKAGES &GEOGRAPHIIC ANALYSIS
GIS.INTRODUCTION TO GIS PACKAGES &GEOGRAPHIIC ANALYSISGIS.INTRODUCTION TO GIS PACKAGES &GEOGRAPHIIC ANALYSIS
GIS.INTRODUCTION TO GIS PACKAGES &GEOGRAPHIIC ANALYSIS
 
Oracle SQL Basics
Oracle SQL BasicsOracle SQL Basics
Oracle SQL Basics
 
Slide 2 data models
Slide 2 data modelsSlide 2 data models
Slide 2 data models
 
Materi struktur hirarki basis data
Materi struktur hirarki basis dataMateri struktur hirarki basis data
Materi struktur hirarki basis data
 
Cartography
CartographyCartography
Cartography
 
Database Design and Normalization Techniques
Database Design and Normalization TechniquesDatabase Design and Normalization Techniques
Database Design and Normalization Techniques
 
Lect 7 & 8 types of vector data model-gis
Lect 7 & 8 types of vector data model-gisLect 7 & 8 types of vector data model-gis
Lect 7 & 8 types of vector data model-gis
 
Database Management - Lecture 2 - SQL select, insert, update and delete
Database Management - Lecture 2 - SQL select, insert, update and deleteDatabase Management - Lecture 2 - SQL select, insert, update and delete
Database Management - Lecture 2 - SQL select, insert, update and delete
 
PL/SQL
PL/SQLPL/SQL
PL/SQL
 
Introduction to GIS
Introduction to GISIntroduction to GIS
Introduction to GIS
 
Four data models in GIS
Four data models in GISFour data models in GIS
Four data models in GIS
 
TYBSC IT PGIS Unit III Chapter II Data Entry and Preparation
TYBSC IT PGIS Unit III Chapter II Data Entry and PreparationTYBSC IT PGIS Unit III Chapter II Data Entry and Preparation
TYBSC IT PGIS Unit III Chapter II Data Entry and Preparation
 

Destacado

Oracle Spatial de la A a la Z - Unidad 5
Oracle Spatial de la A a la Z - Unidad 5Oracle Spatial de la A a la Z - Unidad 5
Oracle Spatial de la A a la Z - Unidad 5Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 9
Oracle Spatial de la A a la Z - Unidad 9Oracle Spatial de la A a la Z - Unidad 9
Oracle Spatial de la A a la Z - Unidad 9Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 8
Oracle Spatial de la A a la Z - Unidad 8Oracle Spatial de la A a la Z - Unidad 8
Oracle Spatial de la A a la Z - Unidad 8Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Jorge Ulises
 
Oracle Spatial de la A a la Z - Unidad 1
Oracle Spatial de la A a la Z - Unidad 1Oracle Spatial de la A a la Z - Unidad 1
Oracle Spatial de la A a la Z - Unidad 1Jorge Ulises
 
Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9Jorge Ulises
 

Destacado (8)

Oracle Spatial de la A a la Z - Unidad 5
Oracle Spatial de la A a la Z - Unidad 5Oracle Spatial de la A a la Z - Unidad 5
Oracle Spatial de la A a la Z - Unidad 5
 
Oracle Spatial de la A a la Z - Unidad 9
Oracle Spatial de la A a la Z - Unidad 9Oracle Spatial de la A a la Z - Unidad 9
Oracle Spatial de la A a la Z - Unidad 9
 
Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10Oracle Spatial de la A a la Z - Unidad 10
Oracle Spatial de la A a la Z - Unidad 10
 
Oracle Spatial de la A a la Z - Unidad 8
Oracle Spatial de la A a la Z - Unidad 8Oracle Spatial de la A a la Z - Unidad 8
Oracle Spatial de la A a la Z - Unidad 8
 
Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6
 
Oracle Spatial de la A a la Z - JUGM 2010
Oracle Spatial de la A a la Z - JUGM 2010Oracle Spatial de la A a la Z - JUGM 2010
Oracle Spatial de la A a la Z - JUGM 2010
 
Oracle Spatial de la A a la Z - Unidad 1
Oracle Spatial de la A a la Z - Unidad 1Oracle Spatial de la A a la Z - Unidad 1
Oracle Spatial de la A a la Z - Unidad 1
 
Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9Android de la A a la Z - Unidad 9
Android de la A a la Z - Unidad 9
 

Similar a Oracle Spatial de la A a la Z - Unidad 4

Similar a Oracle Spatial de la A a la Z - Unidad 4 (10)

MODELO CUADRATICO DE LA TRAYECTORIA DE UN VOLEO.pdf
MODELO CUADRATICO DE LA TRAYECTORIA DE UN VOLEO.pdfMODELO CUADRATICO DE LA TRAYECTORIA DE UN VOLEO.pdf
MODELO CUADRATICO DE LA TRAYECTORIA DE UN VOLEO.pdf
 
Guía facultativa geogebra
Guía facultativa geogebraGuía facultativa geogebra
Guía facultativa geogebra
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Laboratorio 2 (maqueta) -Transformacion de coordenadas 3D- Cordova Darwin
Laboratorio 2 (maqueta) -Transformacion de coordenadas 3D- Cordova DarwinLaboratorio 2 (maqueta) -Transformacion de coordenadas 3D- Cordova Darwin
Laboratorio 2 (maqueta) -Transformacion de coordenadas 3D- Cordova Darwin
 
S4 tarea4 moolh
S4 tarea4 moolhS4 tarea4 moolh
S4 tarea4 moolh
 
Tipos de datos espaciales
Tipos de datos espacialesTipos de datos espaciales
Tipos de datos espaciales
 
Arreglos
ArreglosArreglos
Arreglos
 
Grafos Ponderados
Grafos PonderadosGrafos Ponderados
Grafos Ponderados
 
expo
expoexpo
expo
 
Matematicas para ingenieria 3
Matematicas para ingenieria 3Matematicas para ingenieria 3
Matematicas para ingenieria 3
 

Más de Jorge Ulises

Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8Jorge Ulises
 
Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7Jorge Ulises
 
Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Jorge Ulises
 
Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Jorge Ulises
 
Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Jorge Ulises
 
Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2Jorge Ulises
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Jorge Ulises
 
Android de la A a la Z - Introducción
Android de la A a la Z - IntroducciónAndroid de la A a la Z - Introducción
Android de la A a la Z - IntroducciónJorge Ulises
 
Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11Jorge Ulises
 
Oracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTROOracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTROJorge Ulises
 

Más de Jorge Ulises (10)

Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8Android de la A a la Z - Unidad 8
Android de la A a la Z - Unidad 8
 
Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7Android de la A a la Z - Unidad 7
Android de la A a la Z - Unidad 7
 
Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6Android de la A a la Z - Unidad 6
Android de la A a la Z - Unidad 6
 
Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5
 
Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3Android de la A a la Z - Unidad 3
Android de la A a la Z - Unidad 3
 
Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2Android de la A a la Z - Unidad 2
Android de la A a la Z - Unidad 2
 
Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1Android de la A a la Z - Unidad 1
Android de la A a la Z - Unidad 1
 
Android de la A a la Z - Introducción
Android de la A a la Z - IntroducciónAndroid de la A a la Z - Introducción
Android de la A a la Z - Introducción
 
Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11Android de la A a la Z - Unidad 11
Android de la A a la Z - Unidad 11
 
Oracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTROOracle spatial de la A a la Z - INTRO
Oracle spatial de la A a la Z - INTRO
 

Oracle Spatial de la A a la Z - Unidad 4

  • 1. 4 Definiendo colecciones geométricas OBJETIVOS •Construir geometrías como multipoint, multiline, y multipolygon. •Describir la forma de construir un punto de orientación. •Identificar los constructores y métodos de SDO_GEOMETRY. Este es el primer ejemplo de una colección geometría. Una colección es una geometría que contiene varios elementos. En la figura se puede apreciar una colección de tipo multipunto. Para una multipunto, el tipo de elemento es 1, y la interpretación corresponde con el número de puntos que pertenecen a la colección. Nota: SDO_GTYPE para esta geometría es 2005 (multipunto 2D). Recuerda que SDO_GTYPE es el primer campo del objeto SDO_GEOMETRY, el cual describe toda la geometría. 1 MULTIPOINT Ordinate Offset Element Type Interpretation 1 1 5 Número de puntos que forman parte de la colección.
  • 2. El SDO_GTYPE 2005 indica que se trata de un elemento de tipo multipunto de dos dimensiones. El valor de la interpretación en el primer triplete SDO_ELEM_INFO_ARRAY define el número de puntos que formarán parte de la colección. SDO_GEOMETRY (2005, NULL, NULL, SDO_ELEM_INFO_ARRAY (1,1,2, 1,1,1, 3,1,1), SDO_ORDINATE_ARRAY (65,5, 70,7)) 2 MULTILINESTRING También es posible tener una colección de linestring s; siempre y cuando estas no se encuentren conectadas entre si. En la figura se muestra, la colección de varias polilineas (linestring s). Para cada elemento de la colección se tiene un valor triple en el campo de SDO_ELEM_INFO. En el ejemplo la línea recta posee un triplete con los valores (1,2,1) y la segunda línea tiene un triplete de (7,2,1). Nota: SDO_GTYPE para esta geometría es 2006 (multilinestring). SDO_GEOMETRY ( 2006, NULL, NULL, SDO_ELEM_INFO_ARRAY (1,2,1, 5,2,1), SDO_ORDINATE_ARRAY (50,15, 55,15, 60,15, 65,15)) 3 MULTIPOLYGON
  • 3. En ejemplo, se ejemplifica la colección MultiPolygon. Para un MultiPolygon, cada elemento de la colección contiene un valor triple en el campo de SDO_ELEM_INFO; el pentágono tiene un triplete (1,1003,1) y el triplete del rectángulo optimizado es (13,1003,3). Un ejemplo real del uso de este tipo de colecciones es como el estado de Hawai se puede representar utilizando un MultiPolygon. El SDO_GTYPE 2007 indica que se trata de un MultiPolygon El tipo de elemento de 1003 indica un polígono anillo exterior. SDO_GEOMETRY ( 2007, NULL, NULL, SDO_ELEM_INFO_ARRAY (1,1003,1, 11,1003,3), SDO_ORDINATE_ARRAY (50,105, 55,105, 60,110, 50,110, 50,105, 62,108, 65,112)) 4 ORIENTED POINT (PUNTO ORIENTADO) Un punto orientado (oriented point) puede ser utilizado en la visualización de mapas y otras aplicaciones de visualización que incluyen símbolos El vector de orientación se utiliza para orientar la simbología y / o texto para el etiquetado en la cartografía y las aplicaciones de visualización. Por ejemplo, puedes usar un vector de orientación para mostrar una etiqueta de texto o una imagen orientada a un ángulo determinado.
  • 4. El campo de SDO_ELEM_INFO para un punto de orientación contiene dos tripletes. El primer triplete: coordenadas de desplazamiento: 0; ya que es el primer punto. Tipo de elemento: Un tipo de elemento de 1 para denotar un que se trata de un punto. Interpretación: Una interpretación con valor 1 para designar a un único punto. El segundo triplete: coordenadas de desplazamiento: El elemento de compensación para el vector de orientación Tipo de elemento: Un tipo de elemento de 1 para denotar un punto. Interpretación: Una interpretación con valor 0 para especificar que se trata de un vector de orientación. La ubicación del punto de partida es (71, 42). Se esta representando un símbolo asociado con el punto que se orienta a lo largo de un vector (71, 42) hasta(72, 43) formando un ángulo de 45 grados. SDO_GEOMETRY(2001, NULL, NULL, SDO_ELEM_INFO_ARRAY(1,1,1, 3,1,0), SDO_ORDINATE_ARRAY(71, 42, 1, 1)) Los puntos orientados deben de poseer coordenadas para el punto que ha de ser almacenado, así como un conjunto de coordenadas que son relativas al punto especificado. Teniendo en cuenta las coordenadas del vector de orientación (i, j), la ecuación siguiente se puede utilizar para calcular el ángulo de orientación: Ángulo = arctan (j / i) En el ejemplo el vector tendría un valor de arctan (1 / 1) = 45 grados. Reglas •Un punto 2D tiene un vector de orientación 2D. •Un punto 2D con un sistema de referencia lineal (LRS) tiene un vector de orientación 2D. •Un punto 3D tiene un vector de orientación 3D. •Un punto en 3D con una medida de LRS tiene un vector de orientación 3D.
  • 5. 5 CONSTRUCTORES SDO_GEOMETRY Los objetos SDO_GEOMETRY pueden ser creados utilizando diferentes constructores. Un constructor puede ser cualquiera de los siguientes: SQL Multimedia (SQL/MM) Well-Known Text (WKT) el cual puede ser una cadena de caracteresen el formato “character large object” (CLOB) o en el formato VARCHAR2 SQL/MM Well-Known Binary (WKB) el cual posee el formato binary large object (BLOB) . Los constructores devuelven un objeto SDO_GEOMETRY. Formatos de constructores: Estos ejemplos muestran el uso de los constructores que utilizan SDO_GEOMETRY bajo SQL / MM WKT; adicionalmente se presenta su equivalente como lo habíamos trabajado en la unidad anterior. 1. En este ejemplo se toma una cadena WKT como entrada para representar un polígono.. Utilizando WKT debemos de tener separados por espacios los diferentes grupos de coordenadas 2. En este ejemplo se incluye un sistema de referencia espacial el cual nos permitirá rellenar el valor SDO_SRID del objeto SDO_GEOMETRY.
  • 6. 6 PRIMEROS MÉTODOS EN SDO_GEOMETRY El tipo de objeto SDO_GEOMETRY dispone de una serie de métodos que nos permiten recuperar información acerca de un objeto en particular. GET_GTYPE() El método GET_GTYPE() devuelve el tipo de geometría, la cual se encuentra especificada en el valor de SDO_GTYPE. SELECT g.geom.get_gtype() state_gtype FROM geod_states g WHERE g.state = 'Delaware'; STATE_GTYPE ----------- 3 Nota: Cada vez que se accede a un método o un atributo asociado a un objeto, se debe utilizar un alias de la tabla. En el ejemplo, se utiliza el método de SDO_GEOMETRY GET_GTYPE. El alias de la tabla que es utilizado en este ejemplo es “g”; el cual esta asociado con la tabla geod_states. GET_DIMS() Devuelve la dimension de un objeto tal y como se especifica en su valor SDO_GTYPE SELECT s.geom.get_dims() state_dims FROM geod_states s WHERE s.state = 'Delaware'; STATE_DIMS ---------- 2 Otros métodos para objetos SDO_GEOMETRY GET_WKB(): Devuelve la geometria en formato WKB GET_WKT(): Devuelve la geometria en formato WKT ST_CoordDim(): Devuleve la dimension de una geometria; es un metodo analogo a GET_DIMS(). ST_IsValid(): Se encarga de verificar si una geometria es valida.Devuelve 1 s I es valida, en caso contraio devuleve 0.
  • 7. set long 500; SELECT a.geom.GET_WKT() FROM (SELECT SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(146,66, 148,66, 148,68, 146,68, 146,66)) geom FROM dual) a; A.GEOM.GET_WKT() ---------------- POLYGON ((146.0 66.0, 148.0 66.0, 148.0 68.0, 146.0 68.0, 146.0 66.0)) SELECT a.geom.ST_COORDDIM() FROM (SELECT SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(146,66, 148,66, 148,68, 146,68, 146,66)) geom FROM dual) a; SELECT a.geom.ST_IsValid() FROM (SELECT SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(146,66, 148,66, 148,68, 146,68, 146,66)) geom FROM dual) a; 1 2 Otro método que nos permite checar la validez de una geometría es: SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT