SOLUCIONES Prueba de evaluación Bases de Datos Espaciales

Anuncio
SOLUCIONES Prueba de evaluación Bases de Datos Espaciales (12-01-2011)
1º Calcular la longitud de la vía (2ptos + 2ptos) (NO usar LONGITUD de la tabla tramo).
1º PostGreSQL/PostGIS
SELECT SUM( ST_Length( ST_GeogFromWKB( the_geom ) ) ) As Longitud FROM tramo
WHERE id_vial = 280490000239;
1º Oracle
SELECT SUM( SDO_GEOM.SDO_LENGTH( geometry, 0.005, 'unit=M' ) ) As Longitud
FROM tramo WHERE id_vial = 280490000239;
2º Calcular la distancia media de los portales de la vía respecto a los tramos a los que están
asociados (cada portal tiene un id_tramo) (2ptos + 2ptos).
2º PostGreSQL/PostGIS
SELECT AVG( ST_Distance( ST_Geogfromwkb( portal_pk.the_geom ),
ST_Geogfromwkb( (SELECT the_geom FROM tramo WHERE id_tramo =
portal_pk.id_tramo) ) ) ) AS dmedia FROM portal_pk WHERE id_vial = 280490000239;
2º Oracle
SELECT AVG( SDO_GEOM.SDO_DISTANCE( portal_pk.geometry, (SELECT geometry
FROM tramo WHERE id_tramo = portal_pk.id_tramo), 0.00005 ) ) AS dmedia FROM
portal_pk WHERE id_vial = 280490000239;
3º Calcular el área de un buffer entorno a la unión de los tramos de dicha vía (2ptos + 2ptos)
(suponer que la distancia media es 7.826m).
3º PostGreSQL/PostGIS
SELECT ST_Area( ST_Buffer( ST_Geogfromwkb( (SELECT ST_Union(the_geom) FROM
tramo WHERE id_vial = 280490000239) ), 7.826) ) AS sup;
3º Oracle
SELECT SDO_GEOM.SDO_AREA( SDO_GEOM.SDO_BUFFER( ( SELECT
SDO_AGGR_UNION( MDSYS.SDOAGGRTYPE( geometry, 0.000001)) FROM tramo
WHERE id_vial = 280490000239), 7.826, 0.000001), 0.000001, 'unit=SQ_M') AS sup
FROM dual;
Descargar