¿Cómo convertir / typecast de Polygon a Multipolygon en PostGIS?

29

¿Hay alguna forma de encasillar polígonos a 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 lo limita al tipo Multipolygon. Por lo tanto, no puedo insertar un polígono simple.

He usado la función ST_MPolyFromText (), pero como es habitual, devuelve un valor nulo para eso y ST_Dump () no da el resultado adecuado.

La restricción es:

CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL),
    
pregunta Vicky 01.09.2011 - 09:06

1 respuesta

51

ST_Multi : devuelve la geometría como una geometría MULTI *. Si la geometría ya es un 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)
    
respondido por el underdark 01.09.2011 - 09:34

Lea otras preguntas en las etiquetas