QGIS查找在线上或附近的点

时间:2018-09-11 11:36:13

标签: gis qgis

我正在尝试从以下示例中的线中找到所有位于(或附近<10 m处)的点。

这是两个单独的矢量层,我想创建一个第三层,它是仅在线上或附近的点的子集,即消除异常值。

在QGis中,我一直在尝试以下操作,但没有成功:

  

矢量>地理处理工具>交叉点

     

媒介>研究工具>按位置选择

     

矢量>数据管理工具>按位置联接属性

在对话框中,我尝试调整交点并以不同的精度触摸。

这些解决方案都无法达到预期的效果。

任何提示

enter image description here

3 个答案:

答案 0 :(得分:0)

这是我最后所做的,虽然有点令人费解,但是可以起作用:

1)在道路网络周围创建缓冲区并分解为一个多边形:

**Vector > Geoprocessing Tools > Fixed distance buffer **
    input: Nnes
    distance: 0.0001
    segments = 100
    dissolve = true

rename layer: buffer_lines

2)在点周围创建缓冲区:

**Vector > Geoprocessing Tools > Fixed distance buffer **
    input: points
    distance: 0.00001
    segments = 100
    dissolve = true

rename layer: buffer_points

3)选择完全由buffer_lines包含的buffer_points。

**Vector > Research Tools > Select by location **
    from: buffer_points
    in: buffer_lines
    within

4)通过右键单击图层将所选要素保存为新图层,然后仅选中所选要素。

答案 1 :(得分:0)

  1. 在这些点周围创建一个缓冲区。该缓冲区应该是您要拾取点的线的距离-在您的情况下为10米。如果您在此步骤之前为每个点指定一个唯一的ID(如果尚未完成),它将在以后派上用场。

  2. 获取缓冲区和点层之间的交点。这将为您提供位于这10米缓冲区中的线段。属性表将告诉您缓冲区属于哪个点以及与缓冲区相交的那一行。

  3. 在Excel中进行处理,以使用唯一的ID获得位于线10米以内的点。您可能希望使用VLOOKUP()或INDEX(MATCH())公式从原始点图层获取点几何。

答案 2 :(得分:0)

我的解决方案是使用“由最近的邻居加入属性”。

  • 第一层应该是您的点层。
  • 第二个应该是您的线条层。
  • 重要提示:(根据您的情况)(可选)最大距离为10m。
  • 重要提示:选中“丢弃不匹配”-这将丢弃所有比提供的距离更远的距离

您可能会或可能不会实际加入属性,但只有符合您的最大距离标准的点才会导出到新创建的图层。