QGIS находит точки, которые находятся на или около линии - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь найти все точки, которые находятся (или около <10 м) от линий в приведенном ниже примере. </p>

Это два отдельных векторных слоя, я хочу создать третий слой, который представляет собой подмножество только точек на линиях или около них, т.е. удаляет выбросы.

В QGis я пробовал следующее, но безуспешно:

Вектор> Инструменты геообработки> Пересечение

Вектор> Инструменты исследования> Выбор по местоположению

Вектор> Инструменты управления данными> Объединить атрибуты по местоположению

В диалоговых окнах я пытался настроить пересечение и касание с различной точностью.

Ни одно из этих решений не дает желаемого эффекта.

Любые советы

enter image description here

Ответы [ 2 ]

0 голосов
/ 18 июня 2019
  1. Создать буфер вокруг точек. Этот буфер должен быть на расстоянии от линии, в пределах которой вы хотите набрать очки - в вашем случае 10 метров. Это пригодится позже, если вы передадите каждой точке уникальный идентификатор перед этим шагом (если это еще не сделано).

  2. Возьмите пересечения между буфером и точечным слоем. Это даст вам отрезки линии, которые находятся в этих 10-метровых буферах. Таблица атрибутов скажет вам, к какой точке принадлежит буфер и по какой линии он пересекается.

  3. Процесс в Excel для использования уникальных идентификаторов, чтобы получить точки, которые находятся в пределах 10 метров от линии. Вы можете использовать формулу VLOOKUP () или INDEX (MATCH ()) для получения геометрии точек из исходного слоя точек.

0 голосов
/ 12 сентября 2018

Это то, что я сделал в конце, было немного запутанным, но работает:

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_points, полностью содержащиеся в buffer_lines.

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

4) Сохраните выбранные объекты как новый слой, щелкнув слой правой кнопкой мыши и отметив выбранные объектытолько.

...