31 votos

¿Cómo convertir/tomar un polígono en un multipolígono en PostGIS?

¿Hay alguna forma de encasillar los polígonos en el tipo multipolígono?

Por ejemplo, he creado un círculo usando ST_Buffer() en un punto. El tipo de retorno de esa función es de tipo Polígono. El problema es que en la columna de geometría hay una restricción que la limita al tipo Multipolygon. Por lo tanto, no puedo insertar un polígono simple.

He utilizado la función ST_MPolyFromText(), pero, como es habitual, devuelve un valor nulo y ST_Dump() no da la salida adecuada.

La restricción es:

CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL),

57voto

tobes Puntos 19

ST_Multi - Devuelve la geometría como una geometría MULTI*. Si la geometría ya es una MULTI*, se devuelve sin cambios.

Ejemplo:

SELECT ST_AsText(ST_Multi(ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,
        743265 2967450,743265.625 2967416,743238 2967416))')));
        st_astext
        --------------------------------------------------------------------------------------------------
        MULTIPOLYGON(((743238 2967416,743238 2967450,743265 2967450,743265.625 2967416,
        743238 2967416)))
        (1 row)

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