My question follows from Splitting Streets to Create Polygons?

I was able to successfully convert a layer of linestrings to polygons based on line intersections with the query given in the answer.

SELECT (ST_Dump(ST_Polygonize(ST_Node(multi_geom)))).geom
FROM   (
  SELECT ST_Collect(<geom>) AS multi_geom
  FROM   <your_table>
  -- WHERE <condition>
  -- GROUP BY <attribute>
) q

However, I had a problem with ST_Collect and used ST_Union to create a single geometry of lines from the original linestrings. What I noticed was, St_Union is doing the same thing that St_Node does, St_Union creates a single geometry from lines splitting them at intersections. I simply call St_Dumps on the output from St_Union. This is the transformed query:

SELECT (ST_Dump(ST_Polygonize(q.geom))).geom geom FROM (SELECT ST_Union(geom) geom FROM streets

Are St_Union and St_Node (with regards to this specific operation) similar or is there any benefit from using one over the other?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.