2011-09-29 25 views

Respuesta

16

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

0

Este es el primer golpe en Google cuando se busca este problema. No sé si ha pasado tanto tiempo desde que se creó una función, pero para futuros googlers ST_ExteriorRings (geom) funcionó muy bien para mí. http://postgis.net/docs/ST_ExteriorRing.html

+0

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 ... –

Cuestiones relacionadas