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

Расчет длины линий в полигональном слое

Добавлено: 26 мар 2018, 16:59
butcherius
Добрый день, подскажите, пожалуйста, можно ли как-нибудь рассчитать длины линий в полигоне, не создавая линейный слой.

Задача такая: есть множество полигонов, регулярно добавляются новые и нужно подписывать как площадь полигона, так и его длины линий. На текущий момент это реализовал с помощью разбить полигон на линию, а потом через Анализ/Взорвать линию, но таким путем создается дополнительных слой, а не хотелось бы плодить лишнее и тем более изменяя полигон, линии в том слое автоматически не изменятся.

Устроит вариант с триггером на postgis либо через калькулятор полей, если это вообще возможно.

Re: Расчет длины линий в полигональном слое

Добавлено: 27 мар 2018, 08:36
t[0]p
а разве
butcherius писал(а):
26 мар 2018, 16:59
длины линий в полигоне
это не периметр?
в калькуляторе полей например есть функция $perimeter

Re: Расчет длины линий в полигональном слое

Добавлено: 27 мар 2018, 09:16
freeExec
Насколько я понял он хочет знать длину каждой отдельной линии, а не их сумму.

Re: Расчет длины линий в полигональном слое

Добавлено: 27 мар 2018, 16:32
butcherius
freeExec писал(а):
27 мар 2018, 09:16
Насколько я понял он хочет знать длину каждой отдельной линии, а не их сумму.
Все верно, каждой отдельной линии полигона

Re: Расчет длины линий в полигональном слое

Добавлено: 27 мар 2018, 16:54
freeExec
В калькуляторе в разделе геометрия можно получить координаты всех вершин. Из пары можно обратно собрать линию. По линии можно вычесть длину. Как вы собираетесь хранить этот результат я не знаю.

Re: Расчет длины линий в полигональном слое

Добавлено: 27 мар 2018, 17:32
butcherius
freeExec писал(а):
27 мар 2018, 16:54
В калькуляторе в разделе геометрия можно получить координаты всех вершин. Из пары можно обратно собрать линию. По линии можно вычесть длину. Как вы собираетесь хранить этот результат я не знаю.
Была такая мысль, но количество вершин же разное, надо цикл писать или еще чего.. В общем ясно, спасибо, просто никак не реализуешь по ходу

Re: Расчет длины линий в полигональном слое

Добавлено: 28 мар 2018, 10:18
Prince660
Для решения такой задачи я бы написал модуль на Python. Посчитать не проблема. Соглашусь с freeExec, не понятно как хранить значения длин всех граней в атрибутах одного полигона. Просто через запятую? Или нужно как-то различать какая грань имеет какую длину?

Re: Расчет длины линий в полигональном слое

Добавлено: 28 мар 2018, 11:50
trir
можно создать представление

Re: Расчет длины линий в полигональном слое

Добавлено: 29 мар 2018, 10:38
butcherius
Prince660 писал(а):
28 мар 2018, 10:18
Для решения такой задачи я бы написал модуль на Python. Посчитать не проблема. Соглашусь с freeExec, не понятно как хранить значения длин всех граней в атрибутах одного полигона. Просто через запятую? Или нужно как-то различать какая грань имеет какую длину?
Не стоит задачи хранить это в атрибутах, это может быть виртуальный параметр. Цель такая: при масштабе 1:100 до 1:1 подписывать значения длин на карте, там полигоны маленькие, в среднем около 3-4 м2.
trir писал(а):
28 мар 2018, 11:50
можно создать представление
Это вы про postgre так понимаю, а подробнее чуть можно?

Re: Расчет длины линий в полигональном слое

Добавлено: 29 мар 2018, 10:53
givchik
если это нужно для лабелов, то я бы создал отдельный точечный слой(таблицу в бд) с координатам местоположения и параметрами для отображения значения (значение длины линии, угол, отступ и тд) и тригер для создания этих точек на базе.

Re: Расчет длины линий в полигональном слое

Добавлено: 29 мар 2018, 10:56
trir
CREATE VIEW
QGIS открывает VIEW как слой

Re: Расчет длины линий в полигональном слое

Добавлено: 29 мар 2018, 13:02
butcherius
Всем спасибо, буду думать в этом направлении.