Ticket #1206 (closed defect: fixed)

Opened 20 months ago

Last modified 19 months ago

ST_Node

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

Description (last modified by strk) (diff)

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

  Changed 20 months ago by aperi2007

follow-up: ↓ 3   Changed 20 months ago by strk

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

in reply to: ↑ 2   Changed 20 months ago by aperi2007

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

  Changed 19 months ago by strk

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

  Changed 19 months ago by strk

  • owner changed from pramsey to strk
  • status changed from new to assigned
  • summary changed from ST_Node or ST_NodeLines to ST_Node
  • milestone changed from PostGIS Future to PostGIS 2.0.0

I'm on it

  Changed 19 months ago by strk

  • description modified (diff)

  Changed 19 months ago by strk

  • keywords history added
  • status changed from assigned to closed
  • resolution set to fixed

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

  Changed 19 months ago by robe

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

Note: See TracTickets for help on using tickets.