He cargado algunos Shapefiles de diferentes fuentes en una base de datos PostgreSQL, cuando los visualizo en QQGIS algunos de ellos no se muestran.
Así es como agregué la columna de geometría en mis tablas:
SELECT AddGeometryColumn ('public','table_geom','geom',4326,'MULTIPOLYGON',2, true);
Y este es el script SQL que usé para cambiar el srid de los Shapefiles que cargué en la tabla:
SELECT UpdateGeometrySRID('public', 'shapefile_table','geom',4326);
Agregué la columna de geometría de la tabla creada a partir del Shapefile, no hubo ningún problema con esto.
Así es como definí mi tabla:
CREATE TABLE table_geom
(
id serial NOT NULL,
geom geometry(MultiPolygon,4326),
CONSTRAINT pk_table_geom PRIMARY KEY (id_ageb),
CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2),
CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL),
CONSTRAINT enforce_srid_geom CHECK (st_srid(geom) = 4326)
)
WITH (
OIDS=FALSE
);
ALTER TABLE table_geom
OWNER TO postgres;
La cuestión es que puedo visualizar correctamente el Shapefile fuente en QGIS pero no desde la base de datos. ¿Qué me estoy perdiendo? Ya comprobé que el srid es el mismo en todas las tablas pero parece que ese no es el problema. ¿Alguna pista?
Edición rápida: creo que es un error(?), probablemente porque los datos de la tabla son demasiado grandes, ahora algunas de las capas se muestran desde una tabla, pero no todas.
Edición 1: Ahora veo cuál es el problema, la geometría de la tabla se está dibujando pero no correctamente, como mencioné antes, si cargo el shapefile fuente en QGIS, el área se muestra donde debería estar, pero si cargo desde la base de datos esta área se dibuja en otro lugar, ¿pero por qué? Cambié el srid en todos los shapefiles cargados.
0 votos
Puede ser un problema de proyección. ¿Están los archivos de forma fuente en WGS 84? ¿Verificaste en PostGIS (por ejemplo, pgadmin3) que tus datos estén en la base de datos (por ejemplo,
select count(*) from table_geom
oselect ST_Area(geom) from table_geom
)?0 votos
@Zoltan el sql
select count(*) from table_geom
devuelve como resultadorecuento bigint 78,889
yselect ST_Area(geom) from table_geom
devuelve como resultadost_area double precision
y muchas filas con números, y sí acabo de verificar los archivos que están en WGS 84, algo extraño acaba de suceder, he cargado 2 shapefile en la base de datos en la misma tabla, uno contiene las áreas rurales y el otro las áreas urbanas, cuando visualizo la tabla con QGIS el mapa debería aparecer completo, pero a veces solo carga las áreas rurales y otras las áreas urbanas pero no ambas, no tengo ni idea de por qué.0 votos
¿Puedes probar la conexión de PostGIS utilizando conjuntos de datos más pequeños? ¿Has creado un índice espacial en PostGIS? Solo puedo adivinar...