Страница 1 из 1

Функция "Объединение выделенных объектов": линии

Добавлено: 28 фев 2010, 15:58
Neo
Данная функция наконец-то объединяет две и более линии (в слое). Ура!
Но только логически! В один логический объект.
А рисуется как две и более.
Вот я две линии объединил, а конечные их точки так и не объединились отрезком, т.е. осталась пустота,
хотя выделяются как один объект.

Re: Функция "Объединение выделенных объектов": линии

Добавлено: 28 фев 2010, 16:05
Denis Rykov
Для физического объединения двух линий служит инструмент Join lines, находится в репозитории гислаба.

Re: Функция "Объединение выделенных объектов": линии

Добавлено: 28 фев 2010, 17:12
Neo
Название кнопки "Merge...". что в переводе - "объединить", а линии эта кнопка только "группирует".
При объединении линий нужно создавать единый список координат точек, а не группу линий, тогда и пробела не будет.
Это недочет разработчиков, по-моему!

Re: Функция "Объединение выделенных объектов": линии

Добавлено: 28 фев 2010, 17:26
Mavka
В ГИС есть такое понятие как мультилиния, мультиполигон (в WKT: MULTILINESTRING, MULTIPOLYGON). Это именно отдельные линии (полигоны), которые существуют как цельный объект.

Re: Функция "Объединение выделенных объектов": линии

Добавлено: 28 фев 2010, 21:20
Максим Дубинин
Neo писал(а):Это недочет разработчиков, по-моему!
Это не недочет разбработчиков, это функция создающая комплексный объект геометрии, мультилинию, она может содержать пустоты. Физическое объединение требует алгоритма изменения информации (добавления сегментов, добавления/удаления узлов), текущий инструмент этим не занимается, что вполне резонно.

Попробуйте сделать тоже самое в Arcgis или Arcview, получите точно такое же поведение.

Для физического объединения (с некоторым изменением геометрии) попробуйте моё расширение Joinlines.
Читайте также http://gis-lab.info/blog/2010-02/python-console-qgis/

Re: Функция "Объединение выделенных объектов": линии

Добавлено: 01 мар 2010, 11:48
Neo
Только окончил изучение дисциплины "Основы ГИС"
и знаю как, например, в Shape-файлах хранятся точечные, линейные и полигональные объекты.
А в моем проекте как раз и есть такой слой (реки).

А линии хранятся примерно так:
ID Coordinates
1 x1,y1;x2,y2;...x10,y10
2 x11,y11;x12,y12;...x23,y23

PS
... - множество координатных пар (может даже триад 3-d)

А функция объединения, по-моему, должна сделать из двух линий примерно такое:
ID Coordinates
1 x1,y1;x2,y2;...x10,y10;x11,y11;x12,y12;...x23,y23

И если можно сдвинуть вершину линии, всю линию, и даже удалить линии, то для реализации этого не нужно и ничего нового придумывать:
просто дописать в первую линию координаты 2-й, 3-й и т.д. объединяемых линий, а эти линии( №2, №3 и т.д.) удалить из Shape-файла слоя.
Вот и все дела.
That's all!
PS2
А группирование иначе как логическим объединением и не назовешь, ведь это не целое получается, а совокупность.

Re: Функция "Объединение выделенных объектов": линии

Добавлено: 01 мар 2010, 11:53
Neo
А инструмент доработать можно! И не сложно!
Я так считаю.
Особенно тем, кто разбирается в работе со слоями.

Или его стоит переименовать в "Группирование выделенных объектов",
и создать реальный инструмент объединения объектов, а не "мнимый".

Re: Функция "Объединение выделенных объектов": линии

Добавлено: 01 мар 2010, 13:23
Mavka
Neo
Функция Merge выполняет очень нужную и правильную работу. Я уже писал, что для получаемого результата даже созданы специальные типы геометрии. Они действительно нужны именно такими - отдельными но объединенными в группу. Не нужно ее переделывать. Для вашей задачи есть другой инструмент - Join lines.

Re: Функция "Объединение выделенных объектов": линии

Добавлено: 01 мар 2010, 17:56
Voltron
Neo
Комплексные объекты нужны. Может они не нужны вам лично, но это не повод объявлять их неправильными, "мнимыми".

Если вам кажется, что инструмент работает не правильно - сделайте свой, работающий как надо. Сообщество только благодарно будет.

Re: Функция "Объединение выделенных объектов": линии

Добавлено: 01 мар 2010, 23:15
Neo
С Яндекса:
Комплекс Брокгауз и Ефрон
Комплекс - лат., совокупность однородных предметов, составляющих одно целое.
А для чего нужны комплексные? Слой - та же совокупность однородных объектов (одного типа).
сделайте свой, работающий как надо
Как изучу основы С++ и работу с QGIS API (может и с GDAL/OGR), так и сделаю.