Skip to main content

Hi there,

I'd like to know how I can detect scenarios where polyline features cross each other without the presence of any vertices. See my awful paint work as example:

So in this scenario, both the red and blue line has no vertices where they cross. These kinds of situations, as well as one where just one or the other has no vertex, is what I'm trying to identify. Meaning, in all cases in my data, both edges need to each have a vertex wherever lines cross.

 

Thank you in advance!

One option could be to use the TopologyBuilder and then detect the new nodes it creates (PointOnPointOverlayer)


One option could be to use the TopologyBuilder and then detect the new nodes it creates (PointOnPointOverlayer)

Hi @david_r,

I'm not quite sure I follow. I'm trying to run the data through a TopologyBuilder, but after that I'm not sure how to set the PointOnPointOverlayer to "detect" new nodes?


Hi @david_r,

I'm not quite sure I follow. I'm trying to run the data through a TopologyBuilder, but after that I'm not sure how to set the PointOnPointOverlayer to "detect" new nodes?

Come to think of it, you could also use the ChangeDetector to detect the new nodes, that might be easier (starting FME 2019).

Original = your existing nodes

Revised = the nodes output by the TopologyBuilder

You then want to look at the output of the "Inserted" port. It might be necessary to specify a small tolerance for the geometry comparison.


I would use the intersector to create nodes, separately use a chopper to turn the original data into points and then send both outputs to a matcher to find any unmatched nodes. These are the areas where your lines cross without a node being present.

 

The only thing to consider is whether you want to find where lines cross where there is a node on one line but not on the other. This process will not identify these

 

Lines Cross No Node.fmw


Come to think of it, you could also use the ChangeDetector to detect the new nodes, that might be easier (starting FME 2019).

Original = your existing nodes

Revised = the nodes output by the TopologyBuilder

You then want to look at the output of the "Inserted" port. It might be necessary to specify a small tolerance for the geometry comparison.

Hi @david_r,

Thanks, this one works great. I had to add a chopper as well to convert my original data to nodes, but the output after that is perfect.


Hi @david_r,

Thanks, this one works great. I had to add a chopper as well to convert my original data to nodes, but the output after that is perfect.

This will suffer from the same limitation, that if lines cross but only one has a node at the point of intersection, this won't be highlighted. This may or may not be an issue depending on what you are trying to achieve