UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA INGENIERÍA CATASTRAL Y GEODESIA BASES DE DATOS ESP
Views 123 Downloads 4 File size 13MB
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA INGENIERÍA CATASTRAL Y GEODESIA BASES DE DATOS ESPACIALES
PROYECTO BASES DE DATOS ESPACIALES IVÁN ESTEVEN VASQUEZ LÓPEZ 20151025113
DOCENTE: SANDRA YANETH VELAZCO FLOREZ.
CONSULTAS SQL
Imagen 1.esquema cíclico del proceso de consulta. PROCEDIMIENTOS: PASO 1: Crear una base de datos espacial en postgresql a través de PGADMIN4. “importante recordar que lo que la hace una base de datos espacial es la extensión postgis, esta otorga a la base de datos una cualidad de geometría y un sistema de referencia.”
Imagen2. Creación de base de datos espacial.
PASO 2: Agregar a la base de datos creada shapefile mediante la extensión de postgresql “POSTGIS SHAPEFILE IMPORT/EXPORT”:
Se importaron los Shapefile pertenecientes a la base de datos de IDECA correspondientes a la ciudad de Bogotá.
PASO 3: Se realiza ahora la conexión con Qgis:
Shape objeto de búsqueda SQL. Fuente: Elaboración propia.
/*OBTENER LA DIMENSIÓN DE LOS OBJETOS GRÁFICOS DE LOS SHAPES.*/
/*Shape cicloruta*/ SELECT ST_Dimension(geom) from cicl limit 1; SELECT ST_CoordDim(geom) from cicl limit 1;
/*localidad*/ SELECT ST_Dimension(geom) from loca limit 1; SELECT ST_CoordDim(geom) from loca limit 1;
/* malla vial integral*/ SELECT ST_Dimension(geom) from mvi limit 1; SELECT ST_CoordDim(geom) from mvi limit 1;
/* sector catastral*/ SELECT ST_Dimension(geom) from scat limit 1; SELECT ST_CoordDim(geom) from scat limit 1;
/*OBTENER TIPO DE GEOMETRIA DE LOS OBJETOS*/
SELECT type FROM geometry_columns WHERE f_table_name = 'cicl';
SELECT type FROM geometry_columns WHERE f_table_name = 'loca';
SELECT type FROM geometry_columns WHERE f_table_name = 'mvi';
SELECT type FROM geometry_columns WHERE f_table_name = 'scat';
/* DISTANCIA CARTESIANA DESDE MI Barrio(Puerto Rico) HASTA CHAPINERO (barrio Sucre)*/ SELECT ST_Distance((SELECT geom FROM scat where scanombre=
'PUERTO RICO'), (SELECT geom FROM scat where scanombre='SUCRE'));
/*LONGITUD DE CADA VIA DE BOGOTA*/
SELECT mvinombre, ST_Length2D_Spheroid (geom, 'SPHEROID["GRS_1980",6378137,298.257222101]') FROM mvi;
/*LOCALIDAD CON MAYOR RED VIAL*/ CREATE TABLE mas_ruta as( SELECT loca.locnombre as name, sum(r.shape_leng) as total FROM loca,rmvi r WHERE ST_Intersects(loca.geom,r.geom) GROUP BY loca.locnombre ORDER BY total desc limit 1); ALTER TABLE mas_ruta ADD COLUMN id SERIAL; ALTER TABLE mas_ruta ADD PRIMARY KEY (id);
/* CUANTOS BARRIOS TIENE CADA LOCALIDAD*/
CREATE TABLE cant_barrios as( SELECT loca.locnombre as name, count (*) AS cantidad FROM scat,loca WHERE ST_Intersects(loca.geom,scat.geom) GROUP BY loca.locnombre ORDER BY cantidad desc);
/*CUAL ES LA SUPERFICIE DE CHAPINERO*/ SELECT ST_Area(geom) AS area FROM loca WHERE locnombre = 'CHAPINERO';
/*CUAL ES EL BARRIO MÁS GRANDE*/ SELECT scanombre, ST_Area(geom) AS areas FROM scat ORDER BY areas DESC LIMIT 1; ORDER BY locnombre DESC LIMIT 1;
/*BARRIO CON MÁS VIAS EN BOGOTÁ*/
SELECT scanombre, count(*) FROM mvi, scat WHERE ST_Intersects(mvi.geom, scat.geom) GROUP BY scanombre ORDER BY count DESC LIMIT 1;
/*LONGITUD DE TODA LA RED DE BICIUSUARIOS*/
SELECT count (ST_Length(geom::geometry)/1000) AS km_roads FROM cicl;
/*EL BARRIO CON MENOS CICLORUTAS*/
SELECT scanombre, count(*) FROM cicl, scat WHERE ST_Intersects(cicl.geom, scat.geom) GROUP BY scanombre ORDER BY count ASC LIMIT 1;
/*LOCALIDAD MÁS GRANDE DE BOGOTÁ*/ create table localidad_grande as SELECT loca.locnombre, ST_Area(geom::geometry)/10000 AS hectares,loca.geom FROM loca ORDER BY hectares DESC LIMIT 1;
/*ÁREA TOTAL DE LAS LOCALIDADES DE CHAPINERO Y TEUSAQUILLO*/ create table areas as SELECT ST_Area(geom)/10000 AS area FROM loca WHERE locnombre = 'TEUSAQUILLO' OR locnombre = 'CHAPINERO';
/* BARRIO CON MENOS CICLORUTAS DE BOGOTÁ*/
SELECT scanombre, count(*) FROM cicl, scat WHERE ST_Intersects(cicl.geom, scat.geom) GROUP BY scanombre ORDER BY count ASC LIMIT 1;
/*BARRIO MÁS PEQUEÑO*/ create table barrio_peque as SELECT scat.scanombre, ST_Area(geom::geometry)/10000 AS hectares,scat.geom FROM scat ORDER BY hectares ASC LIMIT 1;
/*BARRIOS POR LOCALIDAD*/ SELECT locnombre, count(*) FROM loca, scat WHERE ST_Intersects(loca.geom, scat.geom) GROUP BY locnombre;
/*CUANTOS SITIOS DE INTERES HAY EN CHAPINERO*/ SELECT scanombre, count(*) FROM scat, sint_bog WHERE scanombre='CHAPINERO CENTRAL' AND ST_Intersects (scat.geom, sint_bog.geom) GROUP BY scanombre;
/*CREAR UN BUFFER A LOS SITIOS DE INTERES*/ ADD column buffer geometry(MultiPolygon,3116,1);
UPDATE sint_bog SET buffer = st_multi(st_buffer(geom,0.0005));
/*CREAR UNA LISTA DE TODOS LOS CENTROS COMERCIALES DE BOGOTA*/ select * from sint_bog where position('Centro Comercial' in sinnombre)>0;
TOTAL CENTROS COMERCIALES
228
/*ORDENAR LOS PORTALES DE TRANSMILENIO DEL MAS CERCANO AL MAS LEJANO DE LA UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS*/ CREATE TABLE dist_pot as SELECT sinnombre, sindirecci FROM pol_portales ORDER BY geom ST_SetSRID(ST_MakePoint(-74.0679326,
4.6314566),3116);
/*ORDENAR BARRIOS POR NOMBRE Y CODIGO TENIENDO EN CUENTA LA DISTANCIA A LA UNIVERSIDAD DISTRITAL FACULTAD INGENIERIA.*/
Universidad Distrital: 4.6314566,-74.0679326 SELECT scanombre, scacodigo FROM scat ORDER BY geom ST_SetSRID (ST_MakePoint(-74.0679326, 4.6314566),3116);