Existe-t-il un moyen d'attribuer un numéro de ligne pour le tableau trié par colonne dans QGIS?

13

La calculatrice de champ a une grande fonction sous "Records" appelée "$ rownum" qui retourne (assigne) le numéro de la ligne courante.

Existe-t-il un moyen de le faire fonctionner avec le tri? Disons que je veux trier le tableau par colonne "longueur" et obtenir l'ordre (séquence) de lignes par longueur du plus court au plus long.

Je sais que je peux facilement utiliser un tableur de bureau pour trier par colonne et remplir la nouvelle colonne avec l'ordre (séquence). Mais je préférerais faire tout le travail dans QGIS.

Mise à jour: comme solution de contournement, il existe également Comment changer l'ordre des fonctionnalités dans un fichier de formes? - en utilisant le plugin mmqgis et la fonction modifier / trier et ensuite utiliser "$ rownum" sur le nouveau fichier enregistré.

Miro
la source

Réponses:

20

J'ai donc codé un plugin ( Tri et Numéro ) pour résoudre votre problème. Il vous permet de sélectionner jusqu'à 3 champs et de classer votre table attributaire en fonction de ces champs. Ensuite, il numérote la table attributaire dans un nouveau champ (nommé "order" par défaut), à partir de 1.

entrez la description de l'image ici

ArMoraer
la source
Ça a l'air génial. Je vais tester ce plugin maintenant, merci.
Miro
Lorsqu'il est installé pour la première fois en 2.8, il a rencontré une erreur, mais après un test en 2.14 et de retour en 2.8, il fonctionne très bien. Je vous remercie.
Miro
@Miro: vous êtes les bienvenus. J'espère que cela sera utile pour d'autres personnes aussi.
ArMoraer
@ArMoraer - Super plugin!
Joseph
1
Pouvez-vous recoder cela pour Bonn 3 -> j'ai adoré cet outil!
lowsparked le
7

Je ne suis pas sûr que vous puissiez le faire avec la calculatrice de champ, mais vous pouvez utiliser une couche virtuelle avec une requête comme:

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
Pierma
la source
Merci, je travaille toujours avec la version à long terme 2.8, c'est donc la première fois que je découvre la couche virtuelle en 2.14. A part c'était très très très lent ça marche. En général, cela est acceptable, mais je vais attendre un peu plus pour d'autres réponses, le cas échéant.
Miro