Вы также можете сделать это в Калькуляторе полей с помощью плагина refFunctions. Вы можете использовать Калькулятор поля для обновления геометрии слоя, а также полей. refFunctions дает вам функцию «geomdistance», чтобы найти ближайшую линию на заданном расстоянии (или «geomnearest», если вы не хотите порог), и возвращает атрибут или геометрию, а функция «closest_point» найдет ближайшую указать на заданную геометрию. Соедините их вместе, чтобы вычислить новые геометрии для вашего точечного слоя:
closest_point(geom_from_wkt(geomdistance('snap_lines','$geometry',10)) , $geometry)
Вместо непосредственного обновления геометрии вы можете вместо этого вычислить поле с привязанной геометрией. Я храню несколько геометрий для привязки точек водопропускной трубы к различным слоям потока, и я могу легко обновить геометрию точек в Калькуляторе поля в зависимости от того, чьи линии потока мне нужно использовать.
С этим связаны некоторые ограничения: оба слоя должны быть одинаковыми CRS, а функция geomdistance выдаст ошибку, если у вас более 100 000 точек, но вы можете изменить это ограничение, если вы редактируете файл плагина refFunctions.