Разрезать линии в точках пересечений

Кроме QGIS
oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Разрезать линии в точках пересечений

Сообщение oleg » 03 авг 2011, 18:34

Есть слой пересекающихся линий. Подскажите, пожалуйста, как можно во всех точках пересечения разорвать (split) линии открытыми инструментами. Спасибо.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Разрезать линии в точках пересечений

Сообщение Максим Дубинин » 04 авг 2011, 11:28

недавно решали тоже самое и не решили, разбили в Arcinfo Workstation, надо расширение писать, но задача разовая, поэтому пока не будем
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Разрезать линии в точках пересечений

Сообщение Mavka » 06 авг 2011, 16:47

OrbisGIS
Имеем три пересекающиеся линии. Берем функцию ST_ToLineNoder (см. доки)

Код: Выделить всё

SELECT ST_ToLineNoder(the_geom) FROM orbis_test

и получаем 7 отдельных линий.
orbis-1.png
before
orbis-1.png (1.04 КБ) 13528 просмотров
orbis-2.png
after
orbis-2.png (1.08 КБ) 13528 просмотров
Последний раз редактировалось Mavka 13 фев 2012, 10:41, всего редактировалось 3 раза.
лангольеры под окном жрали время ом-ном-ном

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Разрезать линии в точках пересечений

Сообщение Александр Мурый » 06 авг 2011, 17:13

Отлично.
А если 100 шейпов, тоже грузить в OrbisGIS ? :)
Кстати, ведь наверняка в PostGIS нарубить линии можно, а? Database-гуру должны знать.
Редактор материалов, модератор форума

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Разрезать линии в точках пересечений

Сообщение Voltron » 06 авг 2011, 18:25

amuriy писал(а):Кстати, ведь наверняка в PostGIS нарубить линии можно, а? Database-гуру должны знать.
Можно-можно. И в QGIS тоже можно.

P.S. не Database-гуру и вообще не гуру

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: Разрезать линии в точках пересечений

Сообщение oleg » 11 авг 2011, 09:30

Mavka, спасибо, буду пробовать!
Voltron, подскажи, пожалуйста, как в QGIS порезать можно?

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Разрезать линии в точках пересечений

Сообщение Voltron » 11 авг 2011, 12:12

Я имел в виду не готовое решение, а вообще саму возможность. Все необходимые функции есть в АПИ.

Trace
Активный участник
Сообщения: 153
Зарегистрирован: 14 окт 2009, 05:07
Репутация: 0
Откуда: Красноярск
Контактная информация:

Re: Разрезать линии в точках пересечений

Сообщение Trace » 18 авг 2011, 07:26

Можно в Грасс сделать модуль v.clean

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: Разрезать линии в точках пересечений

Сообщение oleg » 11 фев 2012, 22:21

Видео на тему v.clean + QGIS - http://youtu.be/rb4iqRmcxHY

Подскажите, пожалуйста, в PostGIS через любой GUI можно как-то подобную порезку провернуть?
И, если не GUI, то в какую сторону искать. Спасибо.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Разрезать линии в точках пересечений

Сообщение Voltron » 11 фев 2012, 22:27

Гуй тут зачем? Это через SQL должно решатся, вроде бы в 2.0 ST_Split делает то, что надо

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: Разрезать линии в точках пересечений

Сообщение oleg » 11 фев 2012, 22:53

Voltron писал(а):Гуй тут зачем?
Для упрощения работы "простого" пользователя ГИС. Спасибо.

Если в QGIS сделать "Vector > Analysis Tools > Line Intersections", то в gvSIG можно воспользоваться "SEXTANTE > Tools for line layers > Split lines with points layer".

GRASS, gv, Q... Пролетарии OpenGIS всех стран - ... !
Последний раз редактировалось oleg 12 фев 2012, 00:10, всего редактировалось 1 раз.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Разрезать линии в точках пересечений

Сообщение Voltron » 11 фев 2012, 23:19

oleg писал(а):Если в QGIS сделать "Vector > Analysis Tools > Line Intersections", то в gvSIG можно воспользоваться "SEXTANTE > Tools for line layers > Split lines with points layer".
Похожий модуль для QGIS давно в разработке. Единственная проблема — время

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: Разрезать линии в точках пересечений

Сообщение oleg » 23 фев 2012, 02:51

Trace писал(а):Можно в Грасс сделать модуль v.clean
v.clean.break разрезает только часть линий в Т-образных соединениях, часть же остается целыми линиями. Подскажите, пожалуйста, есть ли путь для порезки всех линий в GRASS\gvSIG\QGIS, спасибо.
Вложения
t.png
t.png (2.06 КБ) 13497 просмотров

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Разрезать линии в точках пересечений

Сообщение Александр Мурый » 23 фев 2012, 11:00

oleg писал(а): v.clean.break разрезает только часть линий в Т-образных соединениях, часть же остается целыми линиями.
Модуль <v.clean> с опцией "break" разрезает только пересекающиеся линии. Значит, среди ваших линий есть непересекающиеся.
Редактор материалов, модератор форума

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: Разрезать линии в точках пересечений

Сообщение oleg » 23 фев 2012, 15:25

amuriy, спасибо! Всё верно, обнаружил "микроразывы" порядка миллиметров. Источник пока не выявил, похоже на специфику инструментов. При создании данных использовали прилипание - QGIS 1.7.3 00624b3.

Ответить

Вернуться в «Свободные, бесплатные, открытые ГИС»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей