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


30

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

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

Ответы:


54

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

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


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

1
Убедитесь, что у вас не активен экранный фильтр, так как нет причин для него прыгать.
lynxlynxlynx

8

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

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



1

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


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

Вы правы, если отсутствуют значения, то возникнет проблема с реальным индексированием числа. Тем не менее, я думаю, что вызов $id, после удаления строк должен подтвердить @row_number. Если я правильно понял ваше утверждение.
Влад

Нет, это оставит дыры
JGH
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.