将点图层中的所有点自动移动到距离最近的线上 —— 这在 GIS 中称为 点对线的空间对齐(Snapping Points to Line)或垂足投影(Project Points onto Line)。
虽然 QGIS 中没有直接移动点到最近线的工具,但我们可以通过表达式构建图形的方式实现。
操作过程
打开工具箱,搜索并打开:几何图形表达式(Geometry by expression)
参数设置如下:
输入图层: point_layer
输出几何类型: 点
几何表达式: closest_point(geometry(get_feature_by_id('line_layer', 1)), $geometry)
注意:如果 line_layer 是多条线组成的图层(不止一个要素),需使用以下更通用的表达式:
closest_point(
collect_geometries(aggregate('line_layer', 'collect', $geometry)),
$geometry
)

算法解释
- 将所有 line_layer 的线要素合并成一个集合;
- 对每个 point_layer 点,找到它到该集合中最近的点(即在线上的投影点);
- 输出一个新的点图层,此时所有点都已“吸附”到最近的线上。

更多QGIS使用问题,欢迎留言或联系我们。转载须注明出处。