Моя проблема заключается в следующем: у меня есть линия shp (целевой слой) и точка shp (объединить слой). второй (точечный слой) содержит атрибут, который я хочу соединить со слоем линии на основе ближайшего расстояния до линии. Точки и линии не пересекаются
Я могу сделать это с помощью ArcGIS и пространственного соединения (опция соответствия: ближайший), но я не знаю, как этого добиться в QGIS.
qgis
attribute-joins
attribute-table
Миха Пожауко
источник
источник
Ответы:
Я не думаю, что для этого есть «основная» функция QGIS. Однако установите плагин MMQGIS и воспользуйтесь инструментом «Расстояние до ступицы». Выберите ваши точки в качестве слоя «Исходные точки», а ваши линии в качестве «Слоя концентраторов назначения» и установите «Тип формы вывода» на «Линия на концентратор». Это даст вам шейп-файл линий (с длиной), которые соединяют ближайшие объекты. Удобно также добавить идентификатор ближайшего объекта в таблицу атрибутов.
Редактировать / Комментарий: этот подход хорошо работает, если точек меньше, чем линий, или же ситуация "точка-точка" один на один. Наличие большего количества точек, чем линий усложняет ситуацию. Инструмент «Расстояние до центра» добавляет идентификатор линейного объекта в таблицу атрибутов точек как «HubName» вместе с расстоянием между точкой и центром линии как «HubDist». Если точек больше, чем линий, требуется дополнительная работа для определения в каждом подмножестве точек (тех нескольких записей, связанных с каждым линейным концентратором), какая из них является ближайшей к каждой линии, и / или какая из них с требуемым набором атрибуты, чтобы присоединиться к линии.
источник
Для этого можно использовать функцию GRASS v.distance . В QGIS вы можете получить доступ к функции через плагин GRASS ( версия обработки в настоящее время не работает). NNJoin плагин QGIS может быть более простой альтернативой.
источник
Плагин NNJoin никогда не подводил меня и хорошо работает с большими наборами данных .
Плагины> Установить: NNJoin> NNJoin> выбрать входной слой и присоединиться к слою> Затем нажмите присоединиться.
Изучите результаты нового выходного слоя с таблицей атрибутов. Предупреждение: убедитесь, что оба ваших слоя используют одну и ту же пространственную проекцию, иначе ваши результаты будут пустыми.
источник
В 2019 году это может быть возможно с помощью инструмента QGIS 3 Zanzibar «Объединить атрибуты по ближайшему». Этот инструмент позволяет найти ближайший объект и объединить выбранные атрибуты. Также возможно выполнить соединение «один ко многим», если указать максимальное расстояние и максимальное число ближайших соседей.
источник