Skip to main content

I have a set of lines and I would like to find the lines that intersect but where the end node do not touch.

 

For instance, I have two lines L1 and L2, L1 touche L2 at the midpoint of L2. In this case, I would like to extract L1.

 

Any ideas?@Takashi Iijima​ @jdh​  and others

Do you want to find all lines that intersect not at a node (for example L1 and L2 cross in an 😵, or only those lines where an endnode intersects another line not at a node (touch in a T)?


Do you want to find all lines that intersect not at a node (for example L1 and L2 cross in an 😵, or only those lines where an endnode intersects another line not at a node (touch in a T)?

@jdh​ 

 

I would like to find both ways (X cross and touch T).


@danatsafe​ 

 

I had some issues with my internet and I didn't know that my first post about this issue was published.

 

I rewrote it and hope that now, it is clear.

 

Thanks for helping


@jdh​ 

 

I would like to find both ways (X cross and touch T).

I would consider something along the lines of extracting your end nodes as points (original data), sending your lines through the Intersector, the Node output port would be your revised data.

Send both original data and revised data to the ChangeDetector, any node coming out of the Inserted port will correspond to an intersection that occurs without both lines being a node.

 

Unfortunately the SpatialRelator's DE9 intersection matrix does not distinguish lines that touch node to node vs lines that touch node to line, though you can use the predicate Crosses to identify lines that intersect away from nodes (x cross).


@arthy​ You should be able to select the appropriate spatial predicate SpatialRelator or SpatialFilter or create your own DE-9IM predicate. The best way to create the DE-9IM is to create a sample datasets of the intersects that you want to match, and then run those through the SpatialRelator. The SpatialRelator will tell you what the DE-9IM. Then you can run the lines you've identified through the Intersector as @jdh​ suggests

 


@arthy​ You should be able to select the appropriate spatial predicate SpatialRelator or SpatialFilter or create your own DE-9IM predicate. The best way to create the DE-9IM is to create a sample datasets of the intersects that you want to match, and then run those through the SpatialRelator. The SpatialRelator will tell you what the DE-9IM. Then you can run the lines you've identified through the Intersector as @jdh​ suggests

 

@Mark Stoakes​  does the DE-9IM distinguish between touching at nodes vs just touching at edges?


Reply