Страница 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. Он ищет изолированные куски и показывает их цветом, а там уж вручную поправить можно