2 votos

De polígono a multipolígono

Tengo una base de datos en PostgreSQL / PostGIS con polígonos así que ¿cómo puedo fusionar algunos polígonos en multipolygons de la base de datos utilizándolo como QGIS Layer?

4voto

Braiam Puntos 120

Puede utilizar st_collect para agregar polígonos en multipolígonos:

 with src as (
   select 1 as gp, st_geomFromText('Polygon((0 0, 0 1, 1 1, 1 0, 0 0))') geom 
   union 
   select 1, st_geomFromText('Polygon((10 10, 10 11, 11 11, 11 10, 10 10))') 
   union 
   select 2, st_geomFromText('Polygon((20 20, 20 21, 21 21, 21 20, 20 20))')
   )
 select gp, 
        st_asText(st_collect(geom)) 
 from src 
 group by gp;

 gp |                                st_astext
----+-------------------------------------------------------------------------
  1 | MULTIPOLYGON(((0 0,0 1,1 1,1 0,0 0)),((10 10,10 11,11 11,11 10,10 10)))
  2 | MULTIPOLYGON(((20 20,20 21,21 21,21 20,20 20)))

1voto

Cyril Puntos 141

También puede utilizar la función ST_Multi http://postgis.net/docs/ST_Multi.html

WITH src as (
   SELECT ST_GeomFromText('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0),
                                   (10 10, 10 11, 11 11, 11 10, 10 10))') geom) 
   SELECT ST_AsText(ST_Multi(geom)) from src group by geom;

resultado:

MULTIPOLYGON(((0 0,0 1,1 1,1 0,0 0),(10 10,10 11,11 11,11 10,10 10)))

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X