oracle spatial - upmpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-oracle_sdo.pdf · oracle...

12
Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía - UPM

Upload: others

Post on 14-Oct-2019

22 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

Oracle SpatialGuía introductoria

Miguel Ángel Manso

ETSI en Topografía, Geodesia y Cartografía - UPM

Page 2: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

Índice

• ¿Cómo crear una tabla con Geometrías?

• ¿Cómo dar de alta los metadatos de la tabla?

• ¿Cómo crear un índice espacial?

• ¿Qué operaciones se pueden realizar con las geometrías?

Page 3: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

Crear una tabla con geometrías

• Usa la misma Clausura que para el resto de tablas: CREATE TABLE …();

• La columna que contendrá la geometría será de tipo: MDSYS.SDO_GEOMETRY

• Ejemplo:CREATE TABLE cola_markets (

mkt_id NUMBER PRIMARY KEY,

name VARCHAR2(32),

shape SDO_GEOMETRY);

Page 4: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

Crear metadatos geometrías

• Existe una tabla SDO_GEOM_METADATA en la que se registran las tablas que contienen alguna columna de tipo SDO_GEOMETRY

• Existe una vista para cada usuario (Con la que se opera) para estos metadatos: USER_SDO_GEOM_METADATA

• Esta vista contiene:

– TABLE_NAME, COLUMN_NAME, DIMINFO, SRID

Page 5: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

Crear metadatos

INSERT INTO user_sdo_geom_metadata ( TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ( 'cola_markets','shape', SDO_DIM_ARRAY(

SDO_DIM_ELEMENT('X', 0, 20, 0.005), SDO_DIM_ELEMENT('Y', 0, 20, 0.005)

), NULL);

Page 6: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

Crear índices espaciales

• Para crear índices SQL proporciona la siguiente clausura:– CREATE INDEX nombre ON la_tabla(la_columna)

INDEXTYPE IS tipo_indice;

• Índices espaciales: MDSYS.SPATIAL_INDEX

• Ejemplo:– CREATE INDEX cola_spatial_idx ON

cola_markets(shape) INDEXTYPE IS MDSYS.SPATIAL_INDEX;

Page 7: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

Operaciones con las geometrías

• Oracle proporciona los paquetes:

– SDO_GEOM

– SDO_UTIL

– Operadores espaciales

– SDO_LRS

Page 8: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

SDO_GEOMSDO_GEOM.RELATE

SDO_GEOM.SDO_ARC_DENSIFY

SDO_GEOM.SDO_AREA

SDO_GEOM.SDO_BUFFER

SDO_GEOM.SDO_CENTROID

SDO_GEOM.SDO_CONVEXHULL

SDO_GEOM.SDO_DIFFERENCE

SDO_GEOM.SDO_DISTANCE

SDO_GEOM.SDO_INTERSECTION

SDO_GEOM.SDO_LENGTH

SDO_GEOM.SDO_MAX_MBR_ORDINATE

SDO_GEOM.SDO_MBR

SDO_GEOM.SDO_MIN_MBR_ORDINATE

SDO_GEOM.SDO_POINTONSURFACE

SDO_GEOM.SDO_UNION

SDO_GEOM.SDO_XOR

SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT

SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT

SDO_GEOM.WITHIN_DISTANCE

Page 9: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

SDO_UTIL

• SDO_UTIL.APPEND• SDO_UTIL.APPEND_TO_COLLECTION• SDO_UTIL.CIRCLE_POLYGON• SDO_UTIL.CONCAT_LINES• SDO_UTIL.CONVERT_UNIT• SDO_UTIL.DROP_WORK_TABLES• SDO_UTIL.ELLIPSE_POLYGON• SDO_UTIL.EXTRACT• SDO_UTIL.EXTRACT3D• SDO_UTIL.EXTRUDE• SDO_UTIL.FROM_GML311GEOMETRY• SDO_UTIL.FROM_GMLGEOMETRY• SDO_UTIL.FROM_WKBGEOMETRY• SDO_UTIL.FROM_WKTGEOMETRY• SDO_UTIL.GETNUMELEM• SDO_UTIL.GETNUMVERTICES

• SDO_UTIL.GETVERTICES• SDO_UTIL.INITIALIZE_INDEXES_FOR_TTS• SDO_UTIL.POINT_AT_BEARING• SDO_UTIL.POLYGONTOLINE• SDO_UTIL.PREPARE_FOR_TTS• SDO_UTIL.RECTIFY_GEOMETRY• SDO_UTIL.REMOVE_DUPLICATE_VERTICES• SDO_UTIL.REVERSE_LINESTRING• SDO_UTIL.SIMPLIFY• SDO_UTIL.TO_GML311GEOMETRY• SDO_UTIL.TO_GMLGEOMETRY• SDO_UTIL.TO_WKBGEOMETRY• SDO_UTIL.TO_WKTGEOMETRY• SDO_UTIL.VALIDATE_WKBGEOMETRY• SDO_UTIL.VALIDATE_WKTGEOMETRY

Page 10: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

Operadores espaciales• SDO_ANYINTERACT

• SDO_CONTAINS

• SDO_COVEREDBY

• SDO_COVERS

• SDO_EQUAL

• SDO_FILTER

• SDO_INSIDE

• SDO_JOIN

• SDO_NN

• SDO_NN_DISTANCE

• SDO_ON

• SDO_OVERLAPBDYDISJOINT

• SDO_OVERLAPBDYINTERSECT

• SDO_OVERLAPS

• SDO_RELATE

• SDO_TOUCH

• SDO_WITHIN_DISTANCE

Page 11: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

Spatial Aggregate Functions

• SDO_AGGR_CENTROID

• SDO_AGGR_CONCAT_LINES

• SDO_AGGR_CONVEXHULL

• SDO_AGGR_LRS_CONCAT

• SDO_AGGR_MBR

• SDO_AGGR_UNION

Page 12: Oracle Spatial - UPMpdi.topografia.upm.es/m.manso/docencia/bbddee2010/3.-Oracle_SDO.pdf · Oracle Spatial Guía introductoria Miguel Ángel Manso ETSI en Topografía, Geodesia y Cartografía

SDO_LRS• SDO_LRS.CLIP_GEOM_SEGMENT• SDO_LRS.CONCATENATE_GEOM_SEGMENTS• SDO_LRS.CONNECTED_GEOM_SEGMENTS• SDO_LRS.CONVERT_TO_LRS_DIM_ARRAY• SDO_LRS.CONVERT_TO_LRS_GEOM• SDO_LRS.CONVERT_TO_LRS_LAYER• SDO_LRS.CONVERT_TO_STD_DIM_ARRAY• SDO_LRS.CONVERT_TO_STD_GEOM• SDO_LRS.CONVERT_TO_STD_LAYER• SDO_LRS.DEFINE_GEOM_SEGMENT• SDO_LRS.DYNAMIC_SEGMENT• SDO_LRS.FIND_LRS_DIM_POS• SDO_LRS.FIND_MEASURE• SDO_LRS.FIND_OFFSET• SDO_LRS.GEOM_SEGMENT_END_MEASURE• SDO_LRS.GEOM_SEGMENT_END_PT• SDO_LRS.GEOM_SEGMENT_LENGTH• SDO_LRS.GEOM_SEGMENT_START_MEASURE• SDO_LRS.GEOM_SEGMENT_START_PT• SDO_LRS.GET_MEASURE• SDO_LRS.GET_NEXT_SHAPE_PT• SDO_LRS.GET_NEXT_SHAPE_PT_MEASURE• SDO_LRS.GET_PREV_SHAPE_PT

• SDO_LRS.GET_PREV_SHAPE_PT_MEASURE• SDO_LRS.IS_GEOM_SEGMENT_DEFINED• SDO_LRS.IS_MEASURE_DECREASING• SDO_LRS.IS_MEASURE_INCREASING• SDO_LRS.IS_SHAPE_PT_MEASURE• SDO_LRS.LOCATE_PT• SDO_LRS.LRS_INTERSECTION• SDO_LRS.MEASURE_RANGE• SDO_LRS.MEASURE_TO_PERCENTAGE• SDO_LRS.OFFSET_GEOM_SEGMENT• SDO_LRS.PERCENTAGE_TO_MEASURE• SDO_LRS.PROJECT_PT• SDO_LRS.REDEFINE_GEOM_SEGMENT• SDO_LRS.RESET_MEASURE• SDO_LRS.REVERSE_GEOMETRY• SDO_LRS.REVERSE_MEASURE• SDO_LRS.SET_PT_MEASURE• SDO_LRS.SPLIT_GEOM_SEGMENT• SDO_LRS.TRANSLATE_MEASURE• SDO_LRS.VALID_GEOM_SEGMENT• SDO_LRS.VALID_LRS_PT• SDO_LRS.VALID_MEASURE• SDO_LRS.VALIDATE_LRS_GEOMETRY