Dimensionen für Ebenen

Für Vektorebenen können "Dimensionen" erstellt werden

Dabei wird die Ebene in einen speziellen Ebenentyp konvertiert, der jede Dimension als Sublayer anbietet, sich selber aber wie die ursprüngliche Ebene verhält.

Eine Dimension definiert sich dabei als Filter auf Attribute der Ebene.

Dieses Feature wurde mit Version 7.5.0 eingeführt.

Zugriff auf Dimensionen

Der Zugriff erfolgt durch die Angabe des Layernamens und mit einem Doppelpunkt getrennt die zu verwendende Dimension.

Der Doppelpunkt ist in einem Ebenenname nicht zulässig und stellt damit ein Sonderzeichen dar, woran Dimensionen erkannt werden können.

Die Dimension kann dabei nach folgendem Schema angegeben werden(in Klammern als Beispiel):

  • n (1): Genau eine Dimension
  • n1,n2,.. (1,2): Die angegebenen Dimensionen
  • a-n (1-4): Ein Bereich, a muss immer <= n sein
  • All: (all): Ungefiltert, alle Zeilen der Quelle

1 = Nummer der ersten Dimension.

Werden mehrere Dimensionen angegeben, werden die Filter mit OR verbunden.

In GeoSQL als Bsp.:

SELECT * FROM [L17:1-4];
SELECT * FROM [L17:7];

Dieser Bezeichner kann an allen Stellen wo ein Ebenenname erforderlich ist in dieser Form verwendet werden.

Definition einer "Dimension-Ebene"

Bei der Definition einer beliebigen *1) Ebene kann dabei der Parameter "dimension" angegeben werden.

*1) Dies ist z.Z. für alle fast Vektorlayer möglich.

Dynamisch aus der Datenquelle ermitteln (zum Zeitpunkt des Ladens der Ebene)


"dimensions": {
    "dynamicCols": {
        "valueColumn": "stand",
        "labelColumn": "stand"
    },
    "behavior":"AllowCombine,RootLayerUseFirstFilter"
}

Explizite Angabe einer Liste von Filtern


"dimensions": {
    "dims":[{
        "title":"Test-Dim 1",
        "filter":"stand == 1"
        },{
        "title":"Test-Dim 1",
        "filter":"stand == 2"
     }],
    "behavior":"AllowCombine,RootLayerUseFirstFilter"
}

Komplettes Beispiel, angewendet auf eine PostgreSQL Ebene:

[{
 "L1": {
    "type": "PostgresLayer",
    "connectionString": "user=u dbname=db1 host=localhost port=5432",
    "source": "schema.tabelle",
    "geomColumnName": "geom",
    "quickLoad": false,
    "epsgCode": 25833,
    "idColumnName": "id",
    "dimensions": {
        "dynamicCols": {
            "valueColumn": "quelle",
            "labelColumn": "quelle_label"
        },
        "behavior":"AllowCombine"
    },
    "onexist": "ReplaceExisting"
 }
}]

Führt in dem Fall (da dynamicCols angegeben ist) beim Laden eine Abfrage in der Form SELECT DISTINCT quelle, quelle_label FROM schema.tabelle ORDER BY quelle durch und erstellt für jeden Datensatz eine Dimension mit dem Filter auf die Spalte quelle mit dem entsprechendem Wert.


Zuletzt geändert: 08.04.2021 12:35:42 (erstmals erstellt 07.04.2021)