Generalmente, la conversión de polígono a la línea pueden ser no es sencillo porque there is no one-to-one mapping y diversos elementos del mapa de polígonos a diferente cadena de líneas (anillo exterior, los anillos interiores, etc.).
Teniendo en cuenta que, tendrá que dividir cada uno de los siguientes separado enfoque posible de esta manera:
SELECT ST_AsText(ST_MakeLine(sp,ep))
FROM
-- extract the endpoints for every 2-point line segment for each linestring
(SELECT
ST_PointN(geom, generate_series(1, ST_NPoints(geom)-1)) as sp,
ST_PointN(geom, generate_series(2, ST_NPoints(geom) )) as ep
FROM
-- extract the individual linestrings
(SELECT (ST_Dump(ST_Boundary(geom))).geom
FROM mypolygontable
) AS linestrings
) AS segments;
dependiendo de lo que los datos de polígono se almacenan en mypolygontable
, es posible que desee volcar no sólo el límite (como se arriba usando ST_Boundary
) pero también otros elementos. El código anterior con descripción más detallada se encuentra en la lista usuarios PostGIS: Split a polygon to N linestrings
También hay un enfoque genérico para el problema explicado en Exploding a linestring or polygon into individual vectors in PostGIS
pesar de que su respuesta es correcta al 100%, sino que también podría llegar a ser del 100% inútil si ese enlace se mueve, cambia, se fusionaron en otro o el sitio principal simplemente desaparece ... **: - (** Por lo tanto, por favor [edite] su respuesta, y copie los pasos relevantes del enlace en su respuesta, garantizando así su respuesta al 100% de la vida útil de este sitio! **; -) ** Siempre puede salir de la enlace en la parte inferior de su respuesta como fuente para su material ... –