Страница 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 отдельных линий.
orbis-1.png
before
orbis-1.png (1.04 КБ) 14586 просмотров
orbis-2.png
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.