Страница 1 из 1
как найти "висячие" линии
Добавлено: 18 июл 2019, 15:16
nadiopt
имеется слой дорог, в котором некоторые дороги никуда не ведут (изолированы полностью)
вопрос: как средствами QGIS (или GRASS) все их найти (а хорошо бы еще и подсоединить к ближайшей ведущей куда-нибудь дороге. Понятно, что будет не очень корректно, но для быстрого расчета расстояний сгодится).
Re: как найти "висячие" линии
Добавлено: 22 июл 2019, 16:20
oldbay
Теоретически можно попробовать используя PostGis:
1) Собрать в мультилинии все: находящиеся в контакте, пересекающиеся и соприкосающиеся между собой геометрии.
2) Определить основную сеть дорог (мультилинию) и все остальные - скажем через пересечение с точкой на основной дорожной сети, всё что не попало - это "висящие" линии
3) Чтобы соединить с основной сетью: разобрать основную сеть на точки, пройтись циклом по "висящим" линиям и выделить на них конечные точки "висясих" дорог, найти наименьшее расстояние между такими концами и ближайшей точкой на основной сети дорог, нарисовать линию между этими найденными точками. Скорее всего получится фигня - но ничего лучше в голову не приходит.
Но вот "овчинка стоит выделки" - только если данная задача не разовая, а постоянно необходимая. Так как для всего этого придётся писать функцию на plpgsql или на python с использованием psycopg2 и набором запросов.
Re: как найти "висячие" линии
Добавлено: 23 июл 2019, 14:19
nadiopt
да вот нет, задача разовая - надо собрать граф из ОСМ и лесных дорог, оцифрованных с планшетов:(
Re: как найти "висячие" линии
Добавлено: 23 июл 2019, 16:18
oldbay
nadiopt писал(а): ↑23 июл 2019, 14:19
надо собрать граф из ОСМ и лесных дорог
Тогда понятно зачем соединять.
В принципе если сбросите векторный исходник - могу попробовать поколдовать с ним на выходных.
Конечно ничего не обещаю - особенно если погода не испортится )
Re: как найти "висячие" линии
Добавлено: 24 июл 2019, 11:27
konst555
А при помощи топологии вы не пробовали?
Задайте соответствующие условия и они должны выбраться автоматически. Заодно проверите качество пересечений.
Может я и ошибаюсь, но час назад успешно нашел все зазоры между полигонами. Может и для вашего случая правило можно сформулировать.
Удачи!
Re: как найти "висячие" линии
Добавлено: 24 июл 2019, 16:00
bim2010
Re: как найти "висячие" линии
Добавлено: 26 июл 2019, 11:20
nadiopt
oldbay писал(а): ↑23 июл 2019, 16:18
В принципе если сбросите векторный исходник - могу попробовать поколдовать с ним на выходных.
Конечно ничего не обещаю - особенно если погода не испортится )
спасибо на добром слове! только вектор пока не полностью готов (собираю лесные дороги из 100500 папок по каждому участковому лесничеству). А давать на допиливание не конечный слой мне совесть не позволяет
bim2010 - но ведь ОСМ внимательно относится к происхождению данных. Если бы я сама рисовала, например, по снимкам, я бы конечно сразу рисовала в ОСМ. А тут готовые пропиетарные
Re: как найти "висячие" линии
Добавлено: 26 июл 2019, 11:28
Sibit
Можно попробовать сделать из сети полигоны с небольшим буфером, потом объединить, потом разделить на отельные области. Кто сам по себе - не имеет связи с сетью.
Re: как найти "висячие" линии
Добавлено: 26 июл 2019, 13:55
bim2010
Nadiopt писала:
но ведь ОСМ внимательно относится к происхождению данных. Если бы я сама рисовала, например, по снимкам, я бы конечно сразу рисовала в ОСМ.
Сначала я получил разрешение от администрации парка:
На ваше письмо от 06 декабря 2013 об использовании материалов с интернет ресурсов официального портала Национального парка “Смоленское Поозерье” сообщаем, что администрация Национального парка “Смоленское Поозерье” не возражает против использования открытых материалов с сайта
http://www.poozerie.ru/ и геопортала
http://park.smolensk.rekod.ru/ для обрисовки карт проекта OpenStreetMap.
Подобные разрешения получил от администрации области и города. Затем отрисовал дороги в OSM по снимкам сверхвысокого разрешения, т.е. геометрия моя. Текущая задача - отредактировать к реальному состоянию т.к. то, что хорошо читаемо на снимках и даже имеет местами асфальтобетонное покрытие в реале нет возможности проехать по разным причинам (нет мостов, шлагбаум на въезде, заборы, заросло, ветровал, и т.п.).
В OSM удобно наличие
выгрузок карт под разные навигаторы. Процесс итерационный: загружаю в гармин и отмечаю все различия.
Re: как найти "висячие" линии
Добавлено: 09 авг 2019, 15:43
nadiopt
некоторое приближение к решению проблемы - плагин Disconnected Islands. Он ищет изолированные куски и показывает их цветом, а там уж вручную поправить можно