[Spanish] Error al realizar intersección, Postgis

geodesman juavafer at hotmail.com
Tue Feb 9 03:02:54 PST 2016


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.


More information about the Spanish mailing list