Заполнение столбца последовательными номерами в QGIS?

30

Я создаю новый столбец в моей таблице атрибутов, и он имеет значение по умолчанию (например, 0). Я хочу (возможно, с помощью калькулятора полей) иметь результат, что строка 1 имеет значение 1, строка 2 = 2 и т. Д., Как нумерованный индекс.

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

Shepherdjo
источник

Ответы:

54

Просто поместите $rownum(QGIS 2) или @row_number(QGIS 3+) в качестве выражения. Просто как тот. :)

Актуальный список всех функций калькулятора полей можно прочитать в официальных документах .

lynxlynxlynx
источник
Я следовал вашему подходу, однако без видимой причины цифры меняются в один момент. Он отлично работал от строки 1 до строки 129, и после того, как он перешел на 789 ... есть ли способ решить эту проблему?
Гийом
1
Убедитесь, что у вас не активен экранный фильтр, так как нет причин для него прыгать.
lynxlynxlynx
8

@ArMoraer разработал интересный плагин, позволяющий контролировать способ автоматической нумерации, он называется «Сортировка и номер» . Вы можете использовать его, чтобы заполнить столбец уникальными номерами, принимая во внимание 3 других поля, чтобы отсортировать данные так, как вы хотите, перед нумерацией.

См. Тему источника: есть ли способ назначить номер строки для отсортированной таблицы по столбцу в QGIS?

gisnside
источник
7

Если вы используете QGIS 3, вы должны использовать @row_number

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

Лео Кардона
источник
1

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

Влад
источник
Он возвращает идентификатор каждой функции, но последовательность не обязательно начинается с 0 и может иметь пропущенные значения. Это тот случай, когда после удаления существующего объекта (т.е. начните со слоя, имеющего 3 объекта, удалите # 2, вызов $ id вернет 0 и 2.)
JGH
Вы правы, если отсутствуют значения, то возникнет проблема с реальным индексированием числа. Тем не менее, я думаю, что вызов $id, после удаления строк должен подтвердить @row_number. Если я правильно понял ваше утверждение.
Влад
Нет, это оставит дыры
JGH