Skip to main content

I have a road network where I have to find intersections with more than 2 streets. I used Intersector to find nodes and filtered nodes with more than 2 overlaps, eventually finding intersections with more than 2 streets. But this approach has resulted in finding undesirable intersections marked as cross in attached image.

To avoid those intersections I decided to find angle between lines. I cannot use AzimuthCalculator as I don't have a previous WB referencing this transformer. I used PolylineAnalyzer but it outputs angle between segments and not lines. Is there any way I can filter out these undesirable intersections?

What I would do is run the data through the TopologyBuilder instead of the intersector and create a list on the nodes.

 

 

That way the features from the nodes port will have a list of all the line segments at that node, including the angle (measured counterclockwise from the positive x-axis).

Then you can test how many streets there are, and the angle between streets (by subtracting one angle from the next one in the list).


The question would be, what rules do the valid intersections follow that the non-valid intersections do not follow?

It may be simply that the non-valid intersections the Streets linked to the Node all have the same Street Name.

It would be a similar approach to what @jdh suggests, but in the TopologyBuilder Node List, using ListHistogrammer to count the number of unique Street Names. If the generated Histogram List only has one entry in the list ie. StreetName{0} does have a value, but StreetName{1] does not, then the Node was at an "intersection" for street network segments that all belong to the same street, and is hence invalid.


Reply