Actualmente estoy intentando fusionar polígonos (calles y aceras) en uno solo, el polígono fusionado resultante tiene eslizones (Imagen 1).
El cambio de la tolerancia (0,1) tiene un efecto sobre esto, pero resulta en slithers en otras partes de los datos, y cuando se fusionan manualmente (en QGIS) estoy recibiendo algunos puntos atípicos como se puede ver en la imagen 2.
Estoy utilizando este flujo de trabajo para un gran conjunto de datos que se actualizará con regularidad por lo que manualmente ir y solucionar los problemas no será una manera de resolver esto.
¿Alguien ha tenido problemas similares?
A continuación se muestra un ejemplo de código.
Fusión mediante sql (Imagen 1):
Fusión manual en QGIS (Imagen 2):
--Drop and create Type 1/2 adopted layer
DROP TABLE IF EXISTS highway_network.t12_adopted_network;
CREATE TABLE highway_network.t12_adopted_network AS
SELECT ST_Union(ST_SnapToGrid(wkb_geometry,0.01)) as wkb_geometry, t12_usrn as usrn, t12_desc as street
FROM highway_network.highway_adopted_final
GROUP BY t12_usrn, t12_desc;
-- Add a serial column and make it a primary key
ALTER TABLE highway_network.t12_adopted_network ADD COLUMN ogc_fid serial NOT NULL;
ALTER TABLE highway_network.t12_adopted_network ADD CONSTRAINT t12_adopted_network_pk PRIMARY KEY (ogc_fid);
--Drop and create Type 1/2 adopted layer components
DROP TABLE IF EXISTS highway_network.t12_adopted_network_component;
CREATE TABLE highway_network.t12_adopted_network_component AS
SELECT ST_Union(ST_SnapToGrid(wkb_geometry,0.01)) as wkb_geometry, t12_usrn as usrn, t12_desc as street, usage_code as component
FROM highway_network.highway_adopted_final
GROUP BY t12_usrn, t12_desc, usage_code;
-- Add a serial column and make it a primary key
ALTER TABLE highway_network.t12_adopted_network_component ADD COLUMN ogc_fid serial NOT NULL;
ALTER TABLE highway_network.t12_adopted_network_component ADD CONSTRAINT t12_adopted_network_component_pk PRIMARY KEY (ogc_fid);