Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

#1206 closed defect (fixed)

ST_Node

Reported by: strk Owned by: strk
Priority: medium Milestone: PostGIS 2.0.0
Component: postgis Version: master
Keywords: history Cc:

Description (last modified by strk)

A function taking a collection of lineal geometries and performing noding on them. There's a known trick of doing this with ST_Union, but the result is often over-splitted so takes an additional ST_LineMerge to do.

Eventually, having a separate entry point will allow further optimizing or extending it.

Change History (8)

comment:2 by strk, 13 years ago

Input can be both, output will be multi (one component per edge)

in reply to:  2 comment:3 by aperi2007, 13 years ago

Replying to strk:

Input can be both, output will be multi (one component per edge)

ok, I guess to node could be use the ST_Split() but it don't work with MultiLinestrings.

comment:4 by strk, 12 years ago

See http://sourceforge.net/mailarchive/forum.php?thread_name=4EAEC523.6090301%40telus.net&forum_name=jts-topo-suite-user about the ST_Union trick limitation (meaning: future releases of JTS/GEOS might change to support what we need).

comment:5 by strk, 12 years ago

Milestone: PostGIS FuturePostGIS 2.0.0
Owner: changed from pramsey to strk
Status: newassigned
Summary: ST_Node or ST_NodeLinesST_Node

I'm on it

comment:6 by strk, 12 years ago

Description: modified (diff)

comment:7 by strk, 12 years ago

Keywords: history added
Resolution: fixed
Status: assignedclosed

Ok, this is implemented, regress-tested and documented as of r8094. Would be nice to add examples in the dox but the XML is too complex for me :)

Here's a nice example:

=> select st_asewkt(st_node('LINESTRING(0 0 0, 10 10 10, 0 10 5, 10 0 3)'));
 MULTILINESTRING((0 0 0,5 5 4.5),(5 5 4.5,10 10 10,0 10 5,5 5 4.5),(5 5 4.5,10 0 3))

Mind you: it requires GEOS-3.3.2dev due to http://trac.osgeo.org/geos/ticket/482

comment:8 by robe, 12 years ago

okay added at r8095. I'll test once I have my GEOS upgraded.

Note: See TracTickets for help on using tickets.