6 votos

Geometría no se está mostrando correctamente en QGIS 2.12

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 o select ST_Area(geom) from table_geom)?

0 votos

@Zoltan el sql select count(*) from table_geom devuelve como resultado recuento bigint 78,889 y select ST_Area(geom) from table_geom devuelve como resultado st_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...

3voto

sashkello Puntos 325

Tenga en cuenta que UpdateGeometrySRID simplemente "establece" un nuevo SRID en las geometrías, no cambia los valores de las coordenadas de la geometría. Eche un vistazo a la documentación al respecto.

Probablemente necesitará transformar sus datos ya sea antes de importarlos, durante la importación, o en PostGIS mismo.

Para la última opción (que asumo que es su caso), necesita establecer el SRID correcto (el original de sus shapefiles) y luego transformar sus geometrías. Puede hacerlo en un solo paso.

Por ejemplo, si sus datos originales estaban en 3857, puede hacer lo siguiente:

ALTER TABLE table_geom 
ALTER COLUMN geom TYPE geometry(MULTIPOLYGON, 4326) USING ST_Transform(ST_SetSRID(geom,3857),4326);

0 votos

¿Cómo puedo verificar el SRID original del archivo shapefile?

1 votos

Bueno, o tienes un archivo prj en tus shapefiles con esa información o necesitas preguntar a quien te haya proporcionado los datos.

0 votos

Acabo de tropezar con el mismo problema, estaba convirtiendo una característica multipolígono a polígono (llamada sql) antes de incluir las características shp, todo en el mismo prj 4326 (sin cambios de proyección). Mantener la geometría multipolígono resolvió el problema, de alguna manera los polígonos se rompieron/corrompieron(?) durante esa conversión.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X