En QGIS puedo sugerir el uso de "Capa virtual" a través de Layer > Add Layer > Add/Edit Virtual Layer...
.
Supongamos que tenemos dos capas puntos y río con sus correspondientes tablas de atributos, véase la imagen siguiente.
Con la siguiente consulta, es posible crear nuevas líneas que representarán la conexión entre puntos con las características de línea más cercanas.
SELECT
ST_ShortestLine(r.geometry, p.geometry),
p.id AS pid,
r.id AS rid,
ROUND(ST_Length(ST_ShortestLine(r.geometry, p.geometry)), 6) AS distance
FROM
points AS p, river AS r
WHERE
distance < 0.5
GROUP BY
p.id
ORDER BY
MIN(distance)
Nota:
WHERE distance < 0.5
especifica la mayor distancia aceptable entre el punto y la característica de línea
La capa virtual de salida con su tabla de atributos tendrá el siguiente aspecto