Verwenden Sie den Datentyp array [] in QGIS von PostgreSQL


9

Ich bin nur ein Anfänger in GIS, daher freue ich mich über jeden Kommentar hier.

Ich habe Tabellen in PostgreSQL, die ich mit QGIS verbunden habe. Es gibt Spalten in Tabellen mit Datentyp array[]. Für Benutzer ist es jedoch nicht einfach, Daten mithilfe einer Ansicht wie {a, d, c} in eine Spalte einzufügen. Gibt es eine einfache Möglichkeit, die Daten zu bearbeiten?

Ich habe nur eine Idee, Daten wie 'a, b, c' in QGIS einzufügen und ein triggerINSERT / UPDATE zu erstellen, BEVOR die Daten Postgresim richtigen Look in die Tabelle eingefügt werden. Aber es scheint auch nicht der beste Weg zu sein.

Antworten:


1

Der einzige Weg, den ich kenne, ist eine Art "Pro-Use-Kludge".

Zum Beispiel habe ich Daten, die ein Array von Eigenschaftsnummern (Attributname propnum_array, dtype varchar[]) enthalten, und ich möchte manchmal Daten identifizieren, bei denen das Array leer ist.

Das Testen auf propnum_array = {}oder propnum_array is nulloder propnum[0]=''(oder andere Variationen dieser Art von Thema) macht QGIS-Gag, aber ich kann regexp_match( propnum_array,'\\d')oder propnum_array ilike '{""}'oder propnum_array = '{""}'und die Daten in Dinge aufteilen, die nicht leer sind propnum_arrayund Dinge, die nicht leer sind .

Dies bedeutet, dass Sie, wenn die Arrays eine Struktur haben (z. B. bestimmte Werte an bestimmten Elementen im Array), nach diesen suchen können: Wenn Sie alle Werte möchten, bei denen das zweite Element in einem Array mit drei Elementen 'Y' ist, dann Sie möchten so etwas wie regexp_match( propnum_array,'[,]*\'Y\'\[,]*')(ziemlich sicher, dass Sie die Kommas und einfachen Anführungszeichen innerhalb der Übereinstimmungszeichenfolge umgehen müssen, aber das ist ein Anwendungsfall, über den sich jemand anderes Sorgen machen muss).

Die Tatsache, dass dies propnum_array ilike '{""}'funktioniert, scheint darauf hinzudeuten, dass QGIS Arrays so behandelt, als wären sie Text. Alternativ könnten sie bei Bedarf auch im laufenden Betrieb in Text umgewandelt werden. Dann wäre es jedoch nicht sinnvoll, Array-Typen ohne Dokumentation (AFAIK) zu verwenden. Ich konnte noch keine Dokumente zur Array-Handhabung finden, und es gibt noch Fragen zur osgeo-qgis-Mailingliste im Januar 2015.

Ich denke, der wichtigste Hinweis ist, dass der Ausdruckseditor keine Array-Funktionen enthält, obwohl ich verstehe, dass das Plugin 'Data Driven Input Mask' seit Version 1.0.0 (Februar 2015) eine Array-Behandlung hat.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.