Я использую QGIS, и у меня есть точка и дорожная сеть. Мне нужно автоматически извлечь названия дорог, которые включают в себя конкретную точку. Анализ ближайших соседей и буферные зоны не могут выполнять эту работу, потому что во многих случаях точка ближе к измеренным расстояниям, чем соседние дороги, а не окружающие. Есть какие-нибудь идеи о том, как можно извлечь только окружающие дороги?
12
Ответы:
О моих тестовых данных:
РЕШЕНИЕ I
Если есть два предположения:
Дороги строят кварталы.
Вы работаете в метрической системе.
Идея состоит в том, чтобы увеличить / уменьшить координаты X и Y точки. Если вы работаете в метрической системе, вы можете пройти 1 м к востоку от вашей точки, создать новую точку и создать линию с исходной точкой. Вы идете дальше на восток, пока линия не пересекает дорогу. Чтобы найти перекресток на западе, вы должны вычесть 1 м из исходной координаты X. То же самое для координаты Y. Если на севере / востоке / юге / западе дороги нет, счетчик останавливается на отметке 1000 (м). Если вы знаете, что на расстоянии более 1000 м может быть дорога, вы должны изменить это значение.
Вы можете решить задачу с помощью следующего кода:
Edited
Другой пример, показывающий, что дорога e на востоке не распознается как близлежащая дорога точки.
Как вызвать функцию и вывести:
Если есть более 4 дорог, окружающих точку, вы должны смотреть в нескольких направлениях (измените X и Y). Или вы можете изменить азимут вашей линии, то есть вы можете повернуть его на один градус в диапазоне 0-360 °.
РЕШЕНИЕ II
Вдохновленный комментариями, вы также
Polygonize
можете сначала рассказать о своих дорогах. Therefor вы можете использовать инструмент из QGIS:Processing > Toolbox > QGIS geoalgorithms > Vector geometry tools > Polygonize
. Переименуйте временный слой вpolygon
. Предполагая, что вы хотите иметь только названия дорог для точки, которая полностью окружена дорогами. В противном случае вы должны использовать решение , которое я . Это работает, только если все дороги подключены (отключены)!Сначала точка должна пересекаться с многоугольником. Идея состоит в том, что обе начальные
AND
конечные точки окружающей линии должны пересекаться с многоугольником.Выход:
источник