You can edit two point layer one containing SVG maker positions and the other containing points on the line (danger points).
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/1jUXY.png)
Points that you want connect each other must have an attribute with the same name, in the example both the feature have an attribute named 'desc'
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/EK3h9.png)
after you have to duplicate marker point layer and set the simbol as Geometry generation instead SVG. Then apply this formula:
make_line(
make_point($x,$y),
make_point(
x(geometry(get_feature( 'point_online', 'desc' , "desc" ))),
y(geometry(get_feature( 'point_online', 'desc' , "desc" )))
)
)
formula connect marker geometry to the point_online geometry join feature by same desc attribute
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/2kQTi.png)
OTHER SOLUTION WITH ONE LAYER
You can use the same logic with one layer that have both marker SVG point and both online danger points.
Table must have an attribute that you can use for join the two point, in my example is the attribute 'desc'. Marker point have value 'A', danger point related to it, have value '2A'.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/jVfuw.png)
As Stile you can use a rule based stile and using attribute 'connected point' to decide if use SVG or hide the on line symbol.
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/foNdn.png)
Now you can duplicate the layer and apply Geomtry generation as stile:
make_line(
make_point($x,$y),
make_point(
x(geometry(get_feature( 'marker point', 'desc' , 2||"desc" ))),
y(geometry(get_feature( 'marker point', 'desc' , 2||"desc" )))
)
)
![enter image description here](https://cdn.statically.io/img/i.sstatic.net/11a9J.png)