Estoy intentando realizar un recorte por atributos en PostGIS entre dos shapefile que contienen 3000 polígonos. Ambos shapefiles están libres de errores (comprobados con el verificador de topología), ambos shapefile están usando EPSG:3857.
La siguiente consulta funciona bien para el 99,9% de los polígonos, pero para algunos crea polígonos incompletos o falla algunos cuando se cargan en QGIS. Los polígonos con errores tienen el mismo nombre utilizado como atributo de recorte. Realmente no entiendo por qué algunos polígonos no se generan en comparación con otros.
create table poly_20m_checked (gid serial PRIMARY KEY, polyID text, geometry geometry);
insert into poly_20m_checked(polyID, geometry)
select
a.name as polyID,
ST_Intersection(a.geom,b.geom) as geometry
FROM donut20m a, symm20m b
WHERE a.name=b.name
Group by polyID, geometry
donut20m: symm20m: resultado (falta un polígono):
Archivos de ejemplo que contienen 4 polígonos, entre los cuales uno que devuelve un error (movido para hacer la localización anónima): https://drive.google.com/open?id=0B7mqg7Gq1NGVVVVsbTZqMlVhZnc
La razón por la que lo estoy haciendo en PostGIS es que no creo que haya una forma de recortar polígonos en 2 shapefiles usando atributos en QGIS. ¿Qué podría estar causando errores? Estoy muy abierto a sugerencias para evitar el problema. He pensado en dividir los polígonos por ID y luego recortar cada par de shapefiles pero no he conseguido codificarlo.
EDITAR: descargar para ver los polígonos de muestra. EDIT2: Intenté simplificar las geometrías en 1m, lo que hace que la cosa mejore un poco, pero todavía tiene errores
0 votos
Creo que será difícil depurar esto sin que compartas las geometrías reales donut20m y symm20m.
0 votos
Buena idea, aquí hay una muestra que contiene 4 polígonos, entre ellos uno que devuelve un error: drive.google.com/open?id=0B7mqg7Gq1NGVVVsbTZqMlVhZnc