Skip to main content
Question

Buffer Intersection


katt
Supporter
Forum|alt.badge.img+12
  • Supporter

Hello, I would like to do the following (see attachment):

  1. Select these three lines (black, green, red) from a db table (how the table is structured I have to select the three of them and not only two)
  2. Create a 2m buffer around each line
  3. Identify the two lines (black, green), as they are the lines with a smaller angle to each other, and create a point where their buffers intersect /diverge (red dot)
  4. Create a perpendicular line to the green and black line starting from that point
  5. Create a point (yellow dots) 4m away from the intersection of the perpendicular line with black/green line on the black/green line

The first two steps are easy to do but I have troubles with steps 3-5. What transformers shall I use ?

2 replies

max_h
Contributor
Forum|alt.badge.img+10
  • Contributor
  • March 5, 2025

Some suggestions you could try:

For step 3:

-custom ‘HorizontalAngleCalculator’ for each line then calculate the differences to get the smallest angles

-’Intersector’ (you can add a tolerance here, so no buffer needed beforehand), this transformer creates a node at the intersection

For step 4:

-’NeighborFinder’ (‘Insert Vertex On Base Feature:Yes’) with line and new vertex from step 3 as input

-VertexCreator for nearest base/candidate and ‘LineBuilder’


For step 5:
this could be tricky, but I would try to create a 4m long line and then rotate it with given angles


ctredinnick
Supporter
Forum|alt.badge.img+18
  • Supporter
  • March 6, 2025

Attached is a simple way, might be too simple, depending on how straight your lines are.

Offset the lines, then intersect them. If they’re straight and meet at the point, they will only intersect with each other at three points. The furthest of these three points will be on the angle where the two lines are closest. The NeighbourFinder attributes then tell you the coords/angle/distance of this vector which you can place your point along.

 


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings