Gibt es eine Möglichkeit, die Zeilennummer für sortierte Tabellen in QGIS spaltenweise zuzuweisen?

13

Der Feldrechner hat eine großartige Funktion unter "Records", genannt "$ rownum", die die Nummer der aktuellen Zeile zurückgibt (zuweist).

Gibt es eine Möglichkeit, es mit dem Sortieren zusammenarbeiten zu lassen? Nehmen wir an, ich möchte die Tabelle nach der Spalte "Länge" sortieren und die Reihenfolge (Reihenfolge) der Zeilen nach der Länge von der kürzesten zur längsten abrufen.

Ich weiß, dass ich einige Office-Tabellenkalkulationsprogramme verwenden kann, um diese nach Spalten zu sortieren und neue Spalten mit der Reihenfolge (Reihenfolge) zu füllen. Aber ich würde es vorziehen, die ganze Arbeit in QGIS zu erledigen.

Update: Als Workaround gibt es auch Wie ändere ich die Reihenfolge der Features in einem Shapefile? - Verwenden Sie das mmqgis-Plugin und die Funktion zum Ändern / Sortieren und verwenden Sie danach "$ rownum" für die neu gespeicherte Datei.

Miro
quelle

Antworten:

19

Also habe ich ein Plugin ( Sortieren und Nummerieren ) programmiert , um Ihr Problem zu lösen. Sie können bis zu 3 Felder auswählen und Ihre Attributtabelle nach diesen Feldern ordnen. Anschließend wird die Attributtabelle in einem neuen Feld nummeriert (standardmäßig "order"), beginnend mit 1.

Bildbeschreibung hier eingeben

ArMoraer
quelle
Es sieht grandios aus. Ich werde dieses Plugin jetzt testen, danke.
Miro
Bei der erstmaligen Installation in 2.8 gab es einige Fehler, aber nach dem Test in 2.14 und zurück in 2.8 funktioniert es ausgezeichnet. Vielen Dank.
Miro
@Miro: Gern geschehen. Ich hoffe, es wird auch für andere Menschen nützlich sein.
ArMoraer
@ArMoraer - Tolles Plugin!
Joseph
1
Kannst du das für Bonn 3 nachkodieren -> ich habe dieses Tool geliebt!
Lowspark
7

Ich bin mir nicht sicher, ob Sie das mit dem Feldrechner können, aber Sie können eine virtuelle Ebene mit einer Abfrage wie der folgenden verwenden:

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
quelle
Vielen Dank, ich arbeite immer noch mit der Langzeitversion 2.8. Es war also mein erstes Mal, dass ich die virtuelle Ebene in 2.14 entdeckte. Abgesehen davon war es sehr sehr sehr langsam, es funktioniert. Im Allgemeinen ist dies akzeptabel, obwohl ich etwas länger auf andere Antworten warten werde, falls welche vorliegen.
Miro