If I understand correctly, you can use the following expression. Either as a *Geometry Generator* symbol layer (on Layer B) or by using the *Geometry by Expression* geoprocessing tool if you wish to create a new layer with the results (used also on Layer B). ```expression -- find the intersection of the line layers and assign it to a variable with_variable('i', intersection( aggregate('Layer A', 'collect', @geometry), @geometry ), -- get the distance of the intersection along Layer B's geometry with_variable('dist_along', line_locate_point(@geometry, @i), -- whether or not you need all / some / just one of these is not clear, but you can modify as necessary -- if ony one is needed then the collect_geometries function can be omitted collect_geometries( -- 100 before the intersection line_interpolate_point(@geometry, @dist_along - 100), -- 100 m after the intersection line_interpolate_point(@geometry, @dist_along + 100), -- the point of intersection @i ) ) ) ``` [![enter image description here][1]][1] [1]: https://i.sstatic.net/wjV94I2Y.png