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.
![input]()
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
![output]()