Oracle Spatial

Transcripción

Oracle Spatial
Oracle Spatial
Guía introductoria
Miguel Ángel Manso
ETSI en Topografía, Geodesia y
Cartografía - UPM
Í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?
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);
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
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);
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;
Operaciones con las geometrías
• Oracle proporciona los paquetes:
– SDO_GEOM
– SDO_UTIL
– Operadores espaciales
– SDO_LRS
SDO_GEOM
SDO_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
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
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
Spatial Aggregate Functions
•
•
•
•
•
•
SDO_AGGR_CENTROID
SDO_AGGR_CONCAT_LINES
SDO_AGGR_CONVEXHULL
SDO_AGGR_LRS_CONCAT
SDO_AGGR_MBR
SDO_AGGR_UNION
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

Documentos relacionados