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

Длина сегмента (линии) у Полигона

Добавлено: 16 фев 2019, 13:59
MrArhitector
Возможно ли как то вычислить длину линии (сегмента) полигона по узлам? Например, построил полигон в виде треугольника. Он состоит из 3-х линий и у него в таблице параметров или около каждой линии показана его длина в метрах.

Re: Длина сегмента (линии) у Полигона

Добавлено: 16 фев 2019, 14:18
trir
SQL

Re: Длина сегмента (линии) у Полигона

Добавлено: 16 фев 2019, 20:10
MrArhitector
trir писал(а):
16 фев 2019, 14:18
SQL
Правильно я понял, что нужно воспользоваться инструментом "Менеджер Базы данных" - выбрать там нужный слой и включить запрос SQL?

Re: Длина сегмента (линии) у Полигона

Добавлено: 16 фев 2019, 20:59
trir
нет, загрузить данные в нормальную БД и написать в ней функцию которая будет возвращать требуемое значение

хотя можно обойтись и одним запросом

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

g.STPointN(i).STDistance(g.STPointN(i+1)) 

Re: Длина сегмента (линии) у Полигона

Добавлено: 18 фев 2019, 16:42
MrArhitector
trir писал(а):
16 фев 2019, 20:59
в нормальную БД
Буду признателен, если покажете как это делать. Как создать нормальную БД?

Re: Длина сегмента (линии) у Полигона

Добавлено: 18 фев 2019, 16:50
voltusya
Для одноразовой задачи можно обойтись и без БД. Самый простой способ перевести ваши полигоны в линии (polygon to lines), потом explode lines и посчитать их длины через калькулятор атрибутов командой $length (проверьте, что у вас метрическая система координат). А потом можете настроить нужное отображение.

Re: Длина сегмента (линии) у Полигона

Добавлено: 19 фев 2019, 07:12
trir
0. Выбрать ядро БД : SQLite, PostGIS, MS SQL Server, MySQL
1. Установить ядро и утилиты. Если выбрать SQLite то ядро уже есть, но понанодобятся инструменты администрирования. Лично мне нравится MS SQL Server, для него понадобится установить сервер БД и GUI
2. Импорт данных в БД - для этого есть OGR, ogr2gui и куча других инструментов
3. Запускаем инструмент администрирования и шпарим запросы
Изображение