Hola de nuevo!! Tras varias pruebas ahi va la mejor solución que he
encontrado para este caso.....

Tengo dos capas de polígonos que quiero interceptar se generan geometrías
complejas , dentro de las cuales hay polígonos:

-Compruebo que ambas capas se pueden intersectar y que devolverán un
conjunto no vacío:

select count(*) from psuelos s,pusossuelo u where
st_intersects(s.geom,u.geom)='true' 

Tipos de geometría de la intersección: Polygon (185), Multipolygon(75) y
GeometryCollection(2)

-Creo una tabla nueva y vacía donde almacenare esta intersección:

create table int500 (gid serial PRIMARY KEY, tsuelo INTEGER, tuso INTEGER) 

select addgeometrycolumn ('','int500','geom',-1,'MULTIPOLYGON',2) 

En este caso ya añadimos la restricción de geometría para la futura nueva
capa; Multipolygon. Con lo que tanto los 'Polygon' como los polígonos
contenidos en GeometryCollection han de ser transformados a Multipolygon.

-Almanceno el resultado de la intersección en la tabla creada:

insert into int500 (tsuelo,tuso,geom) select
s.tsuelo,u.tuso,st_multi(stx_extract(st_intersection(s.geom,u.geom),2)) from
psuelos s,pusossuelo u where st_intersects(s.geom,u.geom)

El resultado es una capa de tipo Multipolygon con 262 elementos (185+175+2)

Para este ultimo apartado he probado varias cosas y funciones, y no todas
obtenían el resultado buscado o lo dejaba incompleto. Finalmente, y
siguiendo las recomendaciones y explicaciones del autor, he optado por usar
la función stx_extract() que siempre nos devolverá un resultado óptimo.

Nota: Bibliografia de referencia: 'PostGis 2. Análisis Espacial Avanzado.
Aut: José Carlos Martínez Llario'

Gracias por la ayuda,

Juanjo



--
View this message in context: 
http://osgeo-org.1560.x6.nabble.com/Error-al-realizar-interseccion-Postgis-tp5249267p5249674.html
Sent from the OSGeo Spanish Local Chapter mailing list archive at Nabble.com.
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes

Responder a