Skip to main content
Solved

Find overlapping line features where either of the edges have no vertex.

  • October 14, 2019
  • 6 replies
  • 125 views

Forum|alt.badge.img

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!

Best answer by david_r

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

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

6 replies

david_r
Celebrity
  • 8394 replies
  • Best Answer
  • October 14, 2019

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


Forum|alt.badge.img
  • Author
  • 70 replies
  • October 14, 2019

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?


david_r
Celebrity
  • 8394 replies
  • October 14, 2019

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.


ebygomm
Influencer
Forum|alt.badge.img+44
  • Influencer
  • 3427 replies
  • October 14, 2019

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


Forum|alt.badge.img
  • Author
  • 70 replies
  • October 14, 2019

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.


ebygomm
Influencer
Forum|alt.badge.img+44
  • Influencer
  • 3427 replies
  • October 14, 2019

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