Consultas Postgis

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

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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);