दो विकल्प दिमाग में आते हैं। यदि आप एक विशिष्ट चाहते हैं LINESTRING
तो आप ST_NumGeometries () और ST_GeometryN () का उपयोग कर सकते हैं । वैकल्पिक रूप से, यदि आप सभी उप- जिओमेट्री चाहते हैं, तो ST_Dump () जाने का रास्ता है।
वास्तव में सवाल पढ़ने के बाद, आपको पोस्टगिस-उपयोगकर्ता सूची से इस पोस्ट के समान कुछ करने की आवश्यकता होगी :
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
-- eliminate 0 length linestring
where st_x(st_startpoint(geom))<> st_x(st_endpoint(geom))
) AS linestrings
) AS segments;
LINESTRING
'एक से हैMULTILINESTRING
। लेकिन मैं एक स्तर और गहरा जाना चाहता हूं, मैं व्यक्तिगत लाइन सेगमेंट चाहता हूं, जो विलय होने परLINESTRING
फिर से, जब विलय हो जाता है, तो मूल रूप बनाते हैंMULTILINESTRING
। क्या इसका कोई मतलब है?