He decidido pasarme a PostGIS para fusionar polígonos en lugar de pasar horas haciéndolo en QGIS. Sin embargo, me encuentro con un problema en el que los resultados de una consulta ST_Union se almacenan, o al menos salen como puntos y no como polígonos fusionados.
Esta es mi consulta SQL:
DROP TABLE opengeo.london_merged;
CREATE TABLE opengeo.london_merged (
the_geom geometry(MultiPolygon),
CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL)
);
INSERT INTO opengeo.london_merged
SELECT ST_Union(the_geom) AS the_geom
FROM opengeo.tq_building
Este es el resultado que obtengo de la nueva tabla opengeo.london_merged:
Sin embargo, si ejecuto este mismo SQL en la tabla opengeo.tq_building como una vista SQL en GeoServer (sin crear una nueva tabla, sólo mostrando los resultados):
SELECT ST_Union(the_geom) AS the_geom
FROM opengeo.tq_building
Obtengo la siguiente salida, correcta:
Es obvio que algo está pasando con la forma en que se crea la nueva tabla o cómo los datos se almacenan / recuperan de ella, sólo que todavía no sé lo suficiente sobre PostGIS para poner mi dedo en la llaga.
¿Cómo puedo almacenar la salida ST_Union en una nueva tabla para que la salida sean los polígonos esperados?
Editar
He ejecutado la siguiente vista SQL en la tabla opengeo.london_merged en GeoServer y me da la salida correcta, lo que sugiere que los datos se almacenan correctamente, pero se emiten / me dan mal cuando veo la tabla normalmente. ¿Tal vez un problema de tipo o SRID? No lo sé.
SELECT the_geom FROM opengeo.london_merged
Sigo deseando resolver esto.