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;