【问题标题】:QGIS find points that are on or near a lineQGIS查找在线上或附近的点
【发布时间】:2019-02-15 21:40:26
【问题描述】:

我正在尝试从以下示例中的行中找到所有位于(或接近

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

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

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

矢量 > 研究工具 > 按位置选择

向量 > 数据管理工具 > 按位置连接属性

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

这些解决方案都没有达到预期的效果。

任何提示

【问题讨论】:

    标签: gis qgis


    【解决方案1】:

    这就是我最后所做的,有点复杂但有效:

    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) 通过右键单击图层,将所选要素另存为新图层,并仅勾选所选要素。

    【讨论】:

      【解决方案2】:
      1. 围绕点创建一个缓冲区。该缓冲区应该是距您希望拾取点的线的距离 - 在您的情况下为 10 米。如果您在此步骤之前为每个点指定一个唯一 ID(如果尚未完成),稍后会派上用场。

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-04
          相关资源
          最近更新 更多