有没有一种方法可以为QGIS中的按列分配表的行号?


13

字段计算器在“记录”下有一个很棒的功能,称为“ $ rownum”,它返回(分配)当前行的编号。

有没有办法使其与排序一起使用?可以说我想按“长度”列对表格进行排序,并按从最短到最长的长度获得行的顺序(顺序)。

我知道我可以轻松地使用一些Office电子表格软件来对此进行按列排序,并用顺序(顺序)填充新列。但是我更愿意在QGIS中完成整个工作。

更新:作为解决方法,还有如何更改shapefile中特征的顺序?-使用mmqgis插件和功能进行修改/排序,然后在新保存的文件上使用“ $ rownum”。

Answers:


20

因此,我已经编码了一个插件(Sort和Number)来解决您的问题。它最多允许您选择3个字段,并根据这些字段对属性表进行排序。然后,它从1开始在一个新字段(默认名称为“ order”)中为属性表编号。

在此处输入图片说明


看起来很棒 我现在要测试该插件,谢谢。
米罗(Miro)

在2.8中首次安装时,出现了一些错误,但在2.14中进行测试并在2.8中重新测试后,效果很好。谢谢。
米罗

@Miro:不客气。我希望它对其他人也有用。
ArMoraer

@ArMoraer-很棒的插件!
约瑟夫

1
您能为《波恩3》重新编码吗->我喜欢这个工具!
低火花

7

我不确定是否可以使用字段计算器,但是可以在查询中使用虚拟层:

SELECT 
    * ,
    (SELECT count(*) FROM your_layer AS b WHERE a.length >= b.length) AS length_position
FROM your_layer AS a 
ORDER BY a.length

谢谢,我仍然使用2.8长期版本,所以这是我第一次在2.14中发现虚拟层。除了它非常非常非常慢,它的工作原理。通常这是可以接受的,尽管我要再等待一些其他答案(如果有)。
米罗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.