Подсчет количества вершин многоугольников и линий в QGIS?

13

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

Я подозреваю, что это функция где-то в полевом калькуляторе, но я не могу ее найти.

crichard75
источник

Ответы:

12

Количество баллов - просто простая формула в полевом калькуляторе QGIS:

num_points ($ геометрия)

введите описание изображения здесь

jurajb
источник
7

Вы можете использовать отличный плагин "Vertices Counter", который делает именно это. Вы можете увидеть пошаговое руководство здесь:

Подсчет количества вершин в слое

spatialthoughts
источник
Спасибо Уджавал. Я боюсь, что Python пугает меня, но я только что нашел ваш блог сегодня, и он работает! Большое спасибо, и я извиняюсь, что не смотрю на это раньше. R
crichard75
1
Похоже, этот плагин больше не доступен в QGIS
3.0+
Верный. Посмотрите другой ответ, где вы можете добиться того же, используя формулу в калькуляторе поля num_points ($ geometry)
spatialthoughts
3

С течением времени и изменениями версий появляются некоторые намеки относительно последних версий QGIS 3.2 и 2.18.22 LTR (к 7 августа 2018 года). В QGIS 2.18 плагин Vertices Counter работает как обычно, но, похоже, еще не был портирован на QGIS 3. Но, к счастью, в полевом калькуляторе есть еще одно решение, которое вы ожидали найти почти шесть лет назад.

Доступны две соответствующие функции:

nodes_to_points()создает MULTIPOINTгеометрию исходных узлов Geoemtries и

num_geometries()считает геометрии в коллекции или MULTI...геометрии

поэтому объединение этих функций и создание виртуального поля выполнит эту задачу:

введите описание изображения здесь

в результате чего

введите описание изображения здесь

Йохен Шварце
источник
2

Посмотрите в векторном меню, там есть инструмент "извлечение узлов".

Джованни Манги
источник
Спасибо Джованни, но это не совсем то, что я ищу. Я только что попробовал «извлечь узлы» и посчитать «точки в многоугольнике». Боюсь, шейп-файл, с которым я имею дело, состоит из нескольких примыкающих полигонов. Полигоны были созданы привязкой к вершине. Извлечение узлов создает несколько перекрывающихся точек, которые попадают в счетчик. Я ищу способ подсчета узлов каждого отдельного многоугольника, чтобы квадратный многоугольник мог иметь 4 узла, а не потенциальные 16 или более узлов от примыкающих многоугольников.
crichard75
Затем вам нужно импортировать ваши данные в полностью топологическую gis = GRASS, вы можете сделать это в qgis, используя плагин grass.
Джованни Манги