Вы находитесь на странице: 1из 14

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