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

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
butcherius
Новоприбывший
Сообщения: 5
Зарегистрирован: 26 мар 2018, 16:52
Репутация: 0
Откуда: Belarus

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

Сообщение butcherius » 26 мар 2018, 16:59

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

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

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

Аватара пользователя
t[0]p
Участник
Сообщения: 93
Зарегистрирован: 15 ноя 2014, 14:35
Репутация: 7
Откуда: Томск

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

Сообщение t[0]p » 27 мар 2018, 08:36

а разве
butcherius писал(а):
26 мар 2018, 16:59
длины линий в полигоне
это не периметр?
в калькуляторе полей например есть функция $perimeter

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

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

Сообщение freeExec » 27 мар 2018, 09:16

Насколько я понял он хочет знать длину каждой отдельной линии, а не их сумму.

butcherius
Новоприбывший
Сообщения: 5
Зарегистрирован: 26 мар 2018, 16:52
Репутация: 0
Откуда: Belarus

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

Сообщение butcherius » 27 мар 2018, 16:32

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

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

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

Сообщение freeExec » 27 мар 2018, 16:54

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

butcherius
Новоприбывший
Сообщения: 5
Зарегистрирован: 26 мар 2018, 16:52
Репутация: 0
Откуда: Belarus

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

Сообщение butcherius » 27 мар 2018, 17:32

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

Аватара пользователя
Prince660
Активный участник
Сообщения: 164
Зарегистрирован: 25 мар 2011, 20:12
Репутация: 15
Ваше звание: Питоновод
Откуда: г. Симферорполь
Контактная информация:

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

Сообщение Prince660 » 28 мар 2018, 10:18

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

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 28 мар 2018, 11:50

можно создать представление

butcherius
Новоприбывший
Сообщения: 5
Зарегистрирован: 26 мар 2018, 16:52
Репутация: 0
Откуда: Belarus

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

Сообщение butcherius » 29 мар 2018, 10:38

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

givchik
Новоприбывший
Сообщения: 10
Зарегистрирован: 26 апр 2011, 11:56
Репутация: 0

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

Сообщение givchik » 29 мар 2018, 10:53

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

trir
Гуру
Сообщения: 5286
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

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

Сообщение trir » 29 мар 2018, 10:56

CREATE VIEW
QGIS открывает VIEW как слой

butcherius
Новоприбывший
Сообщения: 5
Зарегистрирован: 26 мар 2018, 16:52
Репутация: 0
Откуда: Belarus

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

Сообщение butcherius » 29 мар 2018, 13:02

Всем спасибо, буду думать в этом направлении.

Ответить

Вернуться в «QGIS»

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

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