Страница 1 из 2
Разрезать линии в точках пересечений
Добавлено: 03 авг 2011, 18:34
oleg
Есть слой пересекающихся линий. Подскажите, пожалуйста, как можно во всех точках пересечения разорвать (split) линии открытыми инструментами. Спасибо.
Re: Разрезать линии в точках пересечений
Добавлено: 04 авг 2011, 11:28
Максим Дубинин
недавно решали тоже самое и не решили, разбили в Arcinfo Workstation, надо расширение писать, но задача разовая, поэтому пока не будем
Re: Разрезать линии в точках пересечений
Добавлено: 06 авг 2011, 16:47
Mavka
OrbisGIS
Имеем три пересекающиеся линии. Берем функцию ST_ToLineNoder (см.
доки)
Код: Выделить всё
SELECT ST_ToLineNoder(the_geom) FROM orbis_test
и получаем 7 отдельных линий.

- before
- orbis-1.png (1.04 КБ) 14586 просмотров

- after
- orbis-2.png (1.08 КБ) 14586 просмотров
Re: Разрезать линии в точках пересечений
Добавлено: 06 авг 2011, 17:13
Александр Мурый
Отлично.
А если 100 шейпов, тоже грузить в OrbisGIS ?

Кстати, ведь наверняка в PostGIS нарубить линии можно, а? Database-гуру должны знать.
Re: Разрезать линии в точках пересечений
Добавлено: 06 авг 2011, 18:25
Voltron
amuriy писал(а):Кстати, ведь наверняка в PostGIS нарубить линии можно, а? Database-гуру должны знать.
Можно-можно. И в QGIS тоже можно.
P.S. не Database-гуру и вообще не гуру
Re: Разрезать линии в точках пересечений
Добавлено: 11 авг 2011, 09:30
oleg
Mavka, спасибо, буду пробовать!
Voltron, подскажи, пожалуйста, как в QGIS порезать можно?
Re: Разрезать линии в точках пересечений
Добавлено: 11 авг 2011, 12:12
Voltron
Я имел в виду не готовое решение, а вообще саму возможность. Все необходимые функции есть в АПИ.
Re: Разрезать линии в точках пересечений
Добавлено: 18 авг 2011, 07:26
Trace
Можно в Грасс сделать модуль
v.clean
Re: Разрезать линии в точках пересечений
Добавлено: 11 фев 2012, 22:21
oleg
Видео на тему v.clean + QGIS -
http://youtu.be/rb4iqRmcxHY
Подскажите, пожалуйста, в PostGIS через любой GUI можно как-то подобную порезку провернуть?
И, если не GUI, то в какую сторону искать. Спасибо.
Re: Разрезать линии в точках пересечений
Добавлено: 11 фев 2012, 22:27
Voltron
Гуй тут зачем? Это через SQL должно решатся, вроде бы в 2.0
ST_Split делает то, что надо
Re: Разрезать линии в точках пересечений
Добавлено: 11 фев 2012, 22:53
oleg
Voltron писал(а):Гуй тут зачем?
Для упрощения работы "простого" пользователя ГИС. Спасибо.
Если в QGIS сделать "Vector > Analysis Tools > Line Intersections", то в gvSIG можно воспользоваться "SEXTANTE > Tools for line layers > Split lines with points layer".
GRASS, gv, Q...
Пролетарии OpenGIS всех стран - ... !
Re: Разрезать линии в точках пересечений
Добавлено: 11 фев 2012, 23:19
Voltron
oleg писал(а):Если в QGIS сделать "Vector > Analysis Tools > Line Intersections", то в gvSIG можно воспользоваться "SEXTANTE > Tools for line layers > Split lines with points layer".
Похожий модуль для QGIS давно в разработке. Единственная проблема — время
Re: Разрезать линии в точках пересечений
Добавлено: 23 фев 2012, 02:51
oleg
Trace писал(а):Можно в Грасс сделать модуль
v.clean
v.clean.break разрезает только часть линий в Т-образных соединениях, часть же остается целыми линиями. Подскажите, пожалуйста, есть ли путь для порезки всех линий в GRASS\gvSIG\QGIS, спасибо.
Re: Разрезать линии в точках пересечений
Добавлено: 23 фев 2012, 11:00
Александр Мурый
oleg писал(а):
v.clean.break разрезает только часть линий в Т-образных соединениях, часть же остается целыми линиями.
Модуль <v.clean> с опцией "break" разрезает только
пересекающиеся линии. Значит, среди ваших линий есть непересекающиеся.
Re: Разрезать линии в точках пересечений
Добавлено: 23 фев 2012, 15:25
oleg
amuriy, спасибо! Всё верно, обнаружил "микроразывы" порядка миллиметров. Источник пока не выявил, похоже на специфику инструментов. При создании данных использовали прилипание - QGIS 1.7.3 00624b3.