Wichtig

Übersetzen ist eine Gemeinschaftsleistung Sie können mitmachen. Diese Seite ist aktuell zu 100.00% übersetzt.

15.2. Erstellung von Layern

Layer können auf viele Arten erstellt werden, unter anderem:

  • leere Layer von Grund auf

  • Layer von vorhandenen Layern

  • Layer aus der Zwischenablage

  • Layer als Ergebnis einer SQL-ähnlichen Abfrage, die auf einem oder mehreren Layern basiert: die (virtuellen Layer)

QGIS bietet auch Werkzeuge zum Importieren/Exportieren verschiedener Formate.

15.2.1. Neue Vektorlayer erstellen

QGIS erlaubt es Ihnen, neue Layer in verschiedenen Formaten zu erstellen. Es bietet Werkzeuge für die Erstellung von GeoPackage-, Shapefile-, SpatiaLite-, GPX-Format und flüchtige Layer (Temporärlayer). Die Erstellung eines neuen GRASS-Layer wird innerhalb des GRASS-Plugins unterstützt.

15.2.1.1. Einen neuen GeoPackage-Layer erstellen

Um einen neuen GeoPackage Layer zu erstellen, drücken Sie die Schaltfläche newGeoPackageLayer Neuer GeoPackage Layer… im Menü Layer ► Layer erstellen ► oder in der Datenquellenverwaltung Werkzeugleiste. Das Dialogfeld Neuer GeoPackage Layer wird angezeigt, wie in Abb. 15.22 dargestellt.

../../../_images/editNewGeoPackage.png

Abb. 15.22 Dialog zum Erstellen eines neuen GeoPackage-Layers

  1. Der erste Schritt besteht darin, den Speicherort der Datenbankdatei anzugeben. Dies kann durch Drücken der Schaltfläche …. rechts neben dem Feld Datenbank erfolgen und eine vorhandene GeoPackage-Datei auswählen oder eine neue erstellen. QGIS wird automatisch die richtige Erweiterung zu dem von Ihnen angegebenen Namen hinzufügen.

  2. Geben Sie dem neuen Layer/Tabelle einen Namen (Tabellenname)

  3. Definieren Sie den Geometrietyp. Wenn es sich nicht um einen geometrielosen Layer handelt, können Sie angeben, ob er Z-Dimension einschließen und/oder M-Werte einschließen soll.

  4. Geben Sie das Koordinatenreferenzsystem mit der Schaltfläche setProjection an

Zum Hinzufügen von Feldern zu dem Layer, den Sie erstellen:

  1. Geben Sie Name des Feldes ein

  2. Wählen Sie die Daten Typ. Unterstützte Typen sind Text, Ganze Zahl (sowohl Integer als auch Integer 64 bit), Dezimalzahl, Datum und Datum & Zeit, Binärobjekt (BLOB) und Boolean.

  3. Je nach gewähltem Datenformat geben Sie die Maximallänge der Werte ein.

  4. Klicken Sie auf die Schaltfläche newAttribute Zur Feldliste hinzufügen.

  5. Wiederholen Sie die obigen Schritte für jedes Feld, das Sie hinzufügen müssen

  6. Wenn Sie mit den Attributen zufrieden sind, klicken Sie auf OK. QGIS wird den neuen Layer zur Legende hinzufügen, und Sie können ihn wie in Abschnitt Einen vorhandenen Layer editieren beschrieben bearbeiten.

Standardmäßig erzeugt QGIS beim Erstellen eines GeoPackage-Layers eine Objektkennungsspalte namens fid, die als Primärschlüssel des Layers fungiert. Der Name kann geändert werden. Das Geometriefeld, falls verfügbar, heißt geometry, und Sie können wählen, ob Sie darauf einen räumlichen Index erstellen wollen. Diese Optionen sind unter dem Erweiterte Optionen zusammen mit dem :guilabel: Layerkennung (kurzer menschenlesbarer Name des Layers) und der :guilabel: Layerbeschreibung zu finden.

Die weitere Verwaltung von GeoPackage-Layern kann mit dem DB-Verwaltung erfolgen.

15.2.1.2. Einen neuen Shapedatei-Layer erstellen

Um einen neuen Layer im ESRI Shapefile-Format zu erstellen, drücken Sie die Schaltfläche newVectorLayer Neuer Shapedatei-Layer… im Menü Layer ► Layer erstellen ► oder in der Symbolleiste Datenquellenverwaltung. Das Dialogfeld Neuer Shapedatei-Layer wird angezeigt, wie in Abb. 15.23 dargestellt.

  1. Geben Sie einen Pfad und einen Dateinamen an, indem Sie die Schaltfläche neben Dateiname verwenden. QGIS fügt automatisch die richtige Erweiterung zu dem von Ihnen angegebenen Namen hinzu.

  2. Als nächstes geben Sie die Dateikodierung der Daten an

  3. Wählen Sie den Geometrietyp des Layers: Keine Geometrie (was zu einer Datei im Format .DBF führt), Punkt, Multipunkt, Linie oder Polygon

  4. Geben Sie an, ob die Geometrie zusätzliche Dimensionen haben soll: Keine, Z (+ M Werte) oder M Werte.

  5. Geben Sie das Koordinatenreferenzsystem mit der Schaltfläche setProjection an

../../../_images/editNewVector.png

Abb. 15.23 Dialog zum Erstellen eines neuen Shapedatei-Layers

Zum Hinzufügen von Feldern zu dem Layer, den Sie erstellen:

  1. Geben Sie Name des Feldes ein

  2. Wählen Sie die Daten Typ. Es werden nur die Attribute Dezimalzahl, Ganzzahl, Textdaten und Datum unterstützt.

  3. Je nach gewähltem Datenformat geben Sie Länge und Genauigkeit ein.

  4. Klicken Sie auf die Schaltfläche newAttribute Zur Feldliste hinzufügen.

  5. Wiederholen Sie die obigen Schritte für jedes Feld, das Sie hinzufügen müssen

  6. Wenn Sie mit den Attributen zufrieden sind, klicken Sie auf OK. QGIS wird den neuen Layer zur Legende hinzufügen, und Sie können ihn wie in Abschnitt Einen vorhandenen Layer editieren beschrieben bearbeiten.

Standardmäßig wird eine erste ganzzahlige id-Spalte hinzugefügt, die jedoch entfernt werden kann.

15.2.1.3. Erstellen eines neuen SpatiaLite Layers

Um einen neuen SpatiaLite Layer zu erstellen, drücken Sie die Schaltfläche newSpatiaLiteLayer Neuer SpatiaLite Layer… im Menü Layer ► Layer erstellen ► oder in der Symbolleiste Datenquellenverwaltung. Das Dialogfeld Neuer SpatiaLite Layer wird angezeigt, wie in Abb. 15.24 dargestellt.

../../../_images/editNewSpatialite.png

Abb. 15.24 Dialog zum Erstellen eines neuen SpatiaLite-Layers

  1. Der erste Schritt besteht darin, den Speicherort der Datenbankdatei anzugeben. Klicken Sie dazu auf die Schaltfläche rechts neben dem Feld Datenbank und wählen Sie eine vorhandene SpatiaLite-Datei aus oder erstellen Sie eine neue. QGIS fügt automatisch die richtige Erweiterung an den von Ihnen angegebenen Namen an.

  2. Geben Sie einen Namen (Layername) für den neuen Layer an

  3. Definieren Sie den Geometrietyp. Wenn es sich nicht um einen geometrielosen Layer handelt, können Sie angeben, ob er Z-Dimension einschließen und/oder M-Werte einschließen soll.

  4. Geben Sie das Koordinatenreferenzsystem über die Schaltfläche setProjection an.

Zum Hinzufügen von Feldern zu dem Layer, den Sie erstellen:

  1. Geben Sie Name des Feldes ein

  2. Wählen Sie den Datentyp Typ. Unterstützte Typen sind Textdaten, Ganzzahl, Dezimalzahl, Datum und Datum-Zeit.

  3. Klicken Sie auf die Schaltfläche newAttribute Zur Feldliste hinzufügen.

  4. Wiederholen Sie die obigen Schritte für jedes Feld, das Sie hinzufügen müssen

  5. Wenn Sie mit den Attributen zufrieden sind, klicken Sie auf OK. QGIS wird den neuen Layer zur Legende hinzufügen, und Sie können ihn wie in Abschnitt Einen vorhandenen Layer editieren beschrieben bearbeiten.

Falls gewünscht, können Sie unter dem Abschnitt automatisch inkrementierenden Primärschlüssel erzeugen das Kontrollkästchen Erweiterte Optionen aktivieren. Sie können auch die Spalte Geometry umbenennen (standardmäßig Geometry).

Die weitere Verwaltung von SpatiaLite Layern kann mit DB Manager erfolgen.

15.2.1.4. Erstellen eines neuen Netzlayers

Um einen neuen Netzlayer zu erstellen, drücken Sie die Schaltfläche newMeshLayer Neuer Netzlayer… im Menü Layer ► Layer erstellen ► oder in der Symbolleiste Datenquellenverwaltung. Der Dialog Neuer Netzlayer wird angezeigt, wie in Abb. 15.25 dargestellt.

../../../_images/editNewMesh.png

Abb. 15.25 Dialog zum Erstellen eines neuen Netzlayers

  1. Der erste Schritt besteht darin, den Speicherort der Netzdatei anzugeben. Dazu drücken Sie die Schaltfläche rechts neben dem Feld Dateiname und wählen eine vorhandene Netzdatei oder erstellen eine neue.

  2. Geben Sie einen Namen an (Layername), d.h. den Namen, unter dem der Layer im Bedienfeld Layers angezeigt wird

  3. Wählen Sie das Dateiformat: derzeit unterstützte Mesh-Dateiformate sind 2DM Mesh File (*.2dm), Selafin File (*.slf) und UGRID (*.nc).

  4. Geben Sie das Koordinatenreferenzsystem an, das dem Datensatz zugeordnet werden soll

  5. Mit den obigen Schritten wird ein leerer Layer erzeugt, dem Sie anschließend Knotenpunkte digitalisieren und Datensatzgruppen hinzufügen können. Es ist jedoch auch möglich, den Layer mit einem bestehenden Netzlayer zu initialisieren, d.h. den neuen Layer mit Eckpunkten oder Flächen des anderen Layers zu bestücken. Um dies zu tun:

    1. Aktivieren Sie checkbox Netz initialisieren mit

    2. und wählen entweder ein Netz aus dem aktuellen Projekt oder Netz aus Datei. Informationen über die ausgewählte Netzdatei werden zur Überprüfung angezeigt.

    Beachten Sie, dass nur der Rahmen des Netzlayers in den neuen Layer übertragen wird; die Datensätze werden nicht kopiert.

15.2.1.5. Erstellen eines neuen GPX-Layers

Um eine neue GPX-Datei zu erstellen:

  1. Wählen Sie Layer erstellen ► newGpx Neuer GPX Layer… aus dem Menü Layer.

  2. Wählen Sie im Dialogfeld den Speicherort für die neue Datei, geben Sie ihr einen Namen und drücken Sie Speichern.

  3. Dem Bedienfeld Layer werden drei neue Layer hinzugefügt:

    • ein Punkt-Layer zur Digitalisierung von Orten (waypoints) mit Feldern, die den Namen, die Höhe, den Kommentar, die Beschreibung, die Quelle, die Url und den Url-Namen speichern

    • ein Layer zur Digitalisierung von Routenabfolgen, die eine geplante Strecke bilden (routes), mit Feldern, die den Namen, das Symbol, die Nummer, den Kommentar, die Beschreibung, die Quelle, die Url und den Url-Namen speichern

    • und einen Linien-Layer, um die Bewegung des Empfängers über die Zeit zu verfolgen (Tracks) mit Feldern, die den Namen, das Symbol, die Nummer, den Kommentar, die Beschreibung, die Quelle, die URL und den URL-Namen speichern.

  4. Sie können nun jeden dieser Layer bearbeiten, wie im Abschnitt Einen vorhandenen Layer editieren beschrieben.

15.2.1.6. Erstellen eines neuen temporären Scratch Layers

Temporäre Scratch Layer sind In-Memory Layer, d.h. sie werden nicht auf der Festplatte gespeichert und werden verworfen, wenn QGIS geschlossen wird. Sie können nützlich sein, um Features zu speichern, die Sie vorübergehend benötigen, oder als Zwischenlayer bei Geoverarbeitungsoperationen.

Um einen neuen Temporärerlayer zu erstellen, wählen Sie den Eintrag createMemory Neuer Temporärerlayer… im Menü Layer ► Layer erstellen ► oder in der Symbolleiste Datenquellenverwaltung. Der Dialog Neuer Temporärerlayer wird angezeigt, wie in Abb. 15.26 dargestellt. Dann:

  1. Geben Sie den Layernamen an

  2. Wählen Sie den Geometrietyp. Hier können Sie eine erstellen:

    • Layer vom Typ „Keine Geometrie“, der als einfache Tabelle dient,

    • Layer Punkt oder Multipunkt,

    • Layer CompoundCurve oder MultiCurve,

    • Polygon/CurvePolygon oder MultiPolygon/MultiSurface Layer.

  3. Bei geometrischen Typen geben Sie die Dimensionen des Datensatzes an: Prüfen Sie, ob er Z-Dimension einschließen und/oder M-Werte einschließen soll.

  4. Geben Sie das Koordinatenreferenzsystem über die Schaltfläche setProjection an.

  5. Fügen Sie Felder zu dem Layer hinzu. Beachten Sie, dass im Gegensatz zu vielen anderen Formaten temporäre Layer ohne Felder erstellt werden können. Dieser Schritt ist daher optional.

    1. Geben Sie Name des Feldes ein

    2. Wählen Sie die Daten Typ: Text, Ganzzahl, Dezimalzahl, Boolean, Datum, Zeit, Datum & Zeit, Binär (BLOB) und andere werden unterstützt.

    3. Je nach gewähltem Datenformat geben Sie die Länge und Genauigkeit ein

    4. Klicken Sie auf die Schaltfläche newAttribute Zur Feldliste hinzufügen.

    5. Wiederholen Sie die obigen Schritte für jedes Feld, das Sie hinzufügen möchten

  6. Wenn Sie mit den Einstellungen zufrieden sind, klicken Sie auf OK. QGIS fügt den neuen Layer zum Layer Bedienfeld hinzu, und Sie können ihn wie im Abschnitt Einen vorhandenen Layer editieren beschrieben bearbeiten.

../../../_images/editNewTemporaryLayer.png

Abb. 15.26 Dialog zum Erstellen eines neuen Temporärlayers

Sie können auch vorgefertigte Temporärlayer erstellen, z. B. über die Zwischenablage (siehe Erstellen neuer Layer über die Zwischenablage) oder als Ergebnis eines Verarbeitungsalgorithmus.

Tipp

Permanente Speicherung eines Layers auf der Festplatte

Um Datenverluste beim Schließen eines Projekts mit Temporärlayern zu vermeiden, können Sie diese Layer in jedem von QGIS unterstützten Vektorformat speichern:

  • Klicken Sie auf das Symbol indicatorMemory neben dem Layer;

  • Auswahl des Eintrags Permanent machen im Kontextmenü des Layers;

  • über den Eintrag Export ► aus dem Kontextmenü oder das Menü Layer ► Speichern unter….

Jeder dieser Befehle öffnet den Dialog Vektorlayer speichern unter, der im Abschnitt Erstellen neuer Layer aus einem vorhandenen Layer beschrieben ist, und die gespeicherte Datei ersetzt die temporäre Datei im Layer Bedienfeld.

15.2.2. Erstellen neuer Layer aus einem vorhandenen Layer

Sowohl Raster- als auch Vektorlayer können in einem anderen Format gespeichert und/oder in ein anderes Koordinatenbezugssystem (KBS) umprojiziert werden. Dies geschieht über das Menü :menuselection:` Layer –> Speichern unter…` oder durch einen Rechtsklick auf den Layer im Layer Bedienfeld und die Auswahl:

  • Export ► Speichern unter… für Raster Layer

  • Export ► Objekte speichern unter… oder Export ► Ausgewählte Objekte speichern unter… für Vektor-Layer.

  • Ziehen Sie den Layer aus dem Layer-Baum auf den PostGIS-Eintrag im Browser Bedienfeld und legen Sie ihn dort ab. Beachten Sie, dass Sie eine PostGIS-Verbindung im Browser Bedienfeld haben müssen.

15.2.2.1. Gemeinsame Parameter

Der Layer speichern unter… Dialog zeigt verschiedene Parameter an, um das Verhalten beim Speichern des Layers zu ändern. Zu den gemeinsamen Parametern für Raster und Vektor gehören:

  • Dateiname: der Speicherort der Datei auf der Festplatte. Er kann sich auf den ausgegebenen Layer oder auf einen Container beziehen, der den Layer speichert (z. B. datenbankähnliche Formate wie GeoPackage, SpatiaLite oder Open Document Spreadsheets).

  • KBS: kann geändert werden, um die Daten neu zu projizieren

  • Ausdehnung: schränkt die Ausdehnung der Eingabe ein, die mit dem extent_selector Widget exportiert werden soll

  • Gespeicherte Datei zur Karte hinzufügen: zum Hinzufügen des neuen Layers zur Kartenansicht

Einige Parameter sind jedoch spezifisch für Raster- und Vektorformate:

15.2.2.2. Rasterspezifische Parameter

Je nach Exportformat sind einige dieser Optionen möglicherweise nicht verfügbar:

  • Ausgabemodus (kann Rasterrohdaten oder Wie dargestellt sein)

  • Format: exportiert in jedes Rasterformat, in das GDAL schreiben kann, wie GeoTiff, GeoPackage, MBTiles, Geospatial PDF, SAGA GIS Binary Grid, Intergraph Raster, ESRI .hdr Labelled…

  • Auflösung

  • Erzeugungsoptionen: verwenden Sie erweiterte Optionen (Dateikomprimierung, Blockgrößen, Farbmetrik…) beim Erzeugen von Dateien, entweder aus den vordefinierten Erstellungsprofilen, die sich auf das Ausgabeformat beziehen, oder indem Sie jeden Parameter einstellen.

  • Pyramiden Erstellung

  • VRT Kacheln falls Sie sich für checkbox VRT erzeugen entschieden haben

  • Leerwerte

../../../_images/saveasraster.png

Abb. 15.27 Speichern als neuer Raster Layer

15.2.2.3. Vektorspezifische Parameter

Je nach Exportformat können einige dieser Optionen verfügbar sein:

  • Format: exportiert in jedes Vektorformat, in das GDAL schreiben kann, wie GeoPackage, GML, ESRI Shapefile, AutoCAD DXF, ESRI FileGDB, Mapinfo TAB oder MIF, SpatiaLite, CSV, KML, ODS, …

  • Layername: Dieser Eintrag steht zur Verfügung, wenn der Dateiname auf ein containerähnliches Format verweist und stellt den Layer der Ausgabe dar.

  • Kodierung

  • Nur gewählte Objekte speichern

  • Felder zum Export und deren Exportoptionen wählen: bietet die Möglichkeit, Felder mit benutzerdefinierten Namen und Einstellungen zu exportieren:

    • Markieren Sie die Zeilen unter der Spalte Name, um die Felder auszuwählen, die im Output Layer bleiben sollen, oder drücken Sie die Schaltflächen Alle wählen oder Alle abwählen.

    • Aktivieren Sie das Kontrollkästchen Aliase für exportierten Namen verwenden, um die Spalte Exportname mit entsprechenden Feldaliasen zu füllen oder auf den ursprünglichen Feldnamen zurückzusetzen. Durch einen Doppelklick auf eine Zelle kann der Name ebenfalls bearbeitet werden.

    • Je nachdem, ob benutzerdefinierte Widgets für Attributformulare verwendet werden, können Sie Alle ausgewählten Rohfeldwerte durch angezeigte Werte ersetzen. Wenn z.B. ein value map Widget auf ein Feld angewandt wird, wird der Output Layer die Darstellungswerte anstelle der Originalwerte enthalten. Die Ersetzung kann auch feldweise in der Spalte Ersetzen durch angezeigte Werte vorgenommen werden.

  • Layermetadaten erhalten: stellt sicher, dass alle im Quell-Layer vorhandenen Metadaten kopiert und gespeichert werden:

    • in dem neu erstellten Layer, wenn die Ausgabe im GeoPackage-Format erfolgt

    • bei anderen Formaten als .qmd-Datei zusammen mit dem Output Layer. Beachten Sie, dass dateibasierte Formate, die mehr als einen Datensatz unterstützen (z.B. SpatiaLite, DXF,…) ein unbeabsichtigtes Verhalten aufweisen können.

  • Symbologieexport: kann hauptsächlich für den DXF-Export und für alle Dateiformate verwendet werden, die OGR-Objektstile (siehe Hinweis unten) als DXF-, KML-, Tabulator-Dateiformate verwenden:

    • Keine Symbologie: Standardstil der Anwendung, die die Daten liest

    • Feature-Symbologie: Stil mit OGR-Feature-Styles speichern (siehe Hinweis unten)

    • Symbol-Layer-Symbologie: Speichern mit OGR-Objektstilen (siehe Hinweis unten), aber mehrfaches Exportieren der gleichen Geometrie, wenn mehrere Symbol-Layer verwendet werden

    • Ein Maßstab-Wert kann auf die letzten Optionen angewendet werden

Bemerkung

OGR Feature Styles sind eine Möglichkeit, den Stil direkt in den Daten als verborgenes Attribut zu speichern. Nur einige Formate können diese Art von Informationen verarbeiten. Die Dateiformate KML, DXF und TAB sind solche Formate. Weitere Einzelheiten finden Sie in der Spezifikation der *OGR Feature Styles <https://gdal.org/user/ogr_feature_style.html>`_.

  • Geometrie: Sie können die Geometriefähigkeiten des Output Layers konfigurieren

    • Geometrietyp: behält die ursprüngliche Geometrie der Objekte bei, wenn sie auf Automatisch gesetzt ist, andernfalls wird sie entfernt oder durch einen beliebigen Typ ersetzt. Sie können eine leere Geometriespalte zu einer Attributtabelle hinzufügen und die Geometriespalte eines räumlichen Layers entfernen.

    • guilabel:Mehrfachtyp erzwingen: Erzwingt die Erstellung von Objekten mit mehreren Geometrien in dem Layer.

    • Z-Dimension einschließen

Tipp

Das Überschreiben des Layer-Geometrietyps macht es möglich, eine geometriefreie Tabelle (z.B. eine .csv-Datei) in ein Shapefile MIT beliebiger Geometrie (Punkt, Linie, Polygon) zu speichern, sodass Geometrien dann manuell mit dem Werkzeug addPart Teil hinzufügen zu Zeilen hinzugefügt werden können.

  • Datenquellen-Optionen, Layeroptionen oder Benutzeroptionen, mit denen Sie je nach Ausgabeformat erweiterte Parameter konfigurieren können. Einige sind in Datenformate und Felder erkunden beschrieben, aber für alle Details siehe die GDAL Treiberdokumentation. Jedes Dateiformat hat seine eigenen benutzerdefinierten Parameter, z.B. für das GeoJSON-Format schauen Sie in die GDAL GeoJSON Dokumentation.

../../../_images/saveasvector.png

Abb. 15.28 Speichern als neuer Vektor Layer

Beim Speichern eines Vector Layers in eine bestehende Datei kann der Benutzer, abhängig von den Möglichkeiten des Ausgabeformats (Geopackage, SpatiaLite, FileGDB…), entscheiden, ob er:

  • die gesamte Datei überschreiben

  • nur den Ziel-Layer überschreiben (der Name des Layers ist konfigurierbar)

  • Objekte an den bestehenden Layer anhängen

  • Objekte anhängen, neue Felder hinzufügen, wenn es welche gibt.

Für Formate wie ESRI Shapefile, MapInfo .tab ist das Anhängen von Objekten ebenfalls möglich.

15.2.3. Erstellen neuer DXF-Dateien

Neben dem Speichern unter… Dialog, der Optionen zum Export eines einzelnen Layers in ein anderes Format bietet QGIS ein weiteres Werkzeug, um mehrere Layer als eine einzelne DXF-Datei zu exportieren. Dies ist über das Menü Projekt ► Import/Export ► Projekt als DXF speichern… möglich.

Im Dialogfeld DXF Export:

  1. Geben Sie die Zieldatei an.

  2. Wählen Sie den Symbolisierungsmodus und den Maßstab (siehe Hinweis OGR Feature Styles), falls zutreffend.

  3. Wählen Sie die Daten Kodierung.

  4. Wählen Sie das anzuwendende KBS: Die ausgewählten Layer werden auf das angegebene KBS neu projiziert.

  5. Wählen Sie die Layer aus, die in die DXF-Dateien aufgenommen werden sollen, indem Sie sie entweder in der Tabelle ankreuzen oder sie automatisch aus einem vorhandenen Kartenthema auswählen. Die Schaltflächen Alle wählen und Alle abwählen können helfen, die zu exportierenden Daten schnell festzulegen.

    Für jeden Layer können Sie wählen, ob Sie alle Objekte in einem einzigen DXF-Layer exportieren möchten oder ob Sie sich auf ein Feld verlassen möchten, dessen Werte verwendet werden, um die Objekte in der DXF-Ausgabe in Layer aufzuteilen.

Optional können Sie auch Folgendes wählen:

  • checkbox Layertitel als Namen verwenden, wenn vorhanden anstelle des Layernamens selbst;

  • checkbox Objekte exportieren, die den aktuellen Kartenausschnitt schneiden;

  • unchecked 2d-Ausgabe erzwingen (z.B. um Polylinienstärke zu unterstützen);

  • checkbox Beschriftungen als MTEXT-Elemente exportieren oder TEXT-Elemente.

../../../_images/export_dxf.png

Abb. 15.29 Exportieren eines Projekts in den DXF-Dialog

15.2.4. Erstellen neuer Layer über die Zwischenablage

Objekte, die sich in der Zwischenablage befinden, können in einen neuen Layer eingefügt werden. Wählen Sie dazu einige Objekte aus, kopieren Sie sie in die Zwischenablage und fügen Sie sie dann in einen neuen Layer ein, indem Sie „Bearbeiten –> Objekte einfügen als –>“ wählen:

Ein neuer Layer mit ausgewählten Objekten und ihren Attributen wird erstellt (und zur Kartenansicht hinzugefügt).

Bemerkung

Das Erstellen von Layern aus der Zwischenablage ist sowohl mit Objekten möglich, die in QGIS ausgewählt und kopiert wurden, als auch mit Objekten aus anderen Anwendungen, sofern deren Geometrien mit bekanntem Text (WKT) definiert wurden.

15.2.5. Erstellen von virtuellen Layern

Ein virtueller Layer ist eine besondere Art von Vektor Layer. Er ermöglicht es Ihnen, einen Layer als Ergebnis einer SQL-Abfrage zu definieren, die eine beliebige Anzahl anderer Vektorlayer einbezieht, die QGIS öffnen kann. Virtuelle Layer enthalten selbst keine Daten und können als Sichten auf andere Daten betrachtet werden.

Um einen virtuellen Layer zu erstellen, öffnen Sie den Dialog zur Erstellung eines virtuellen Layers:

  • Wählen Sie den Eintrag addVirtualLayer Virtueller Layer hinzufügen/bearbeiten ` im Menü :menuselection:`Layer –> Layer hinzufügen –>;

  • Aktivierung der Registerkarte addVirtualLayer Virtuellen Layer hinzufügen im Dialog Datenquellenverwaltung;

  • oder über den entsprechenden Datenanbieter-Eintrag in der DB-Verwaltung.

Im Dialogfeld können Sie einen Layernamen und eine SQL Abfrage angeben. Die Abfrage kann den Namen (oder die ID) der geladenen Layer als Tabellen sowie deren Feldnamen als Spalten verwenden.

Wenn Sie zum Beispiel einen Layer mit dem Namen airports haben, können Sie einen neuen virtuellen Layer mit dem Namen public_airports mit einer SQL-Abfrage wie dieser erstellen:

SELECT *
FROM airports
WHERE USE = "Civilian/Public"

Die SQL-Abfrage wird ausgeführt, unabhängig vom zugrundeliegenden Provider des airports Layers, auch wenn dieser Provider SQL-Abfragen nicht direkt unterstützt.

../../../_images/create_virtual_layers.png

Abb. 15.30 Dialog Virtuelle Layer erstellen

Es können auch Verknüpfungen und komplexe Abfragen erstellt werden, z. B. zur Verknüpfung von Flughäfen und Länderinformationen:

SELECT airports.*, country.population
FROM airports
JOIN country
ON airports.country = country.name

Bemerkung

Es ist auch möglich, virtuelle Layer über das SQL-Fenster des DB Manager Plugin zu erstellen.

15.2.5.1. Einbetten von Layern zur Verwendung in Abfragen

Neben den Vektorlayern, die in der Kartenansicht zur Verfügung stehen, kann der Benutzer in der Liste Eingebettete Layer Layer hinzufügen, die in Abfragen verwendet werden können, ohne dass sie in der Kartenansicht oder im Bedienfeld Layers angezeigt werden müssen.

Um einen Layer einzubetten, klicken Sie auf Hinzufügen und geben Sie den Lokalen Namen, Datenanbieter, Kodierung und den Pfad zur Quelle an.

Die Schaltfläche Import ermöglicht das Hinzufügen von Layern aus der Kartenansicht in die Liste der eingebetteten Layer. Diese Layer können dann aus dem Layer Bedienfeld entfernt werden, ohne dass bestehende Abfragen unterbrochen werden.

15.2.5.2. Unterstützte Abfragesprache

Die zugrundeliegende Engine verwendet SQLite und SpatiaLite zum Betrieb.

Das bedeutet, dass Sie können alle SQL-Ausdrücke verwenden, die auf Ihrer lokalen Installation von SQLite bereitstehen.

Funktionen aus SQLite und räumliche Funktionen aus SpatiaLite können auch in einer Abfrage für virtuelle Layer verwendet werden. Die Erstellung eines Punkt-Layers aus einem reinen Attribut-Layer kann z. B. mit einer Abfrage wie dieser erfolgen:

SELECT id, MakePoint(x, y, 4326) as geometry
FROM coordinates

:ref:`Funktionen der QGIS-Ausdrücke <functions_list> ` können auch in einer virtuellen Layer-Abfrage verwendet werden.

Um auf die Geometriespalte eines Layers zu verweisen, verwenden Sie den Namen geometry.

Im Gegensatz zu einer reinen SQL-Abfrage müssen alle Felder einer virtuellen Layer-Abfrage benannt werden. Vergessen Sie nicht, das Schlüsselwort as zu verwenden, um Ihre Spalten zu benennen, wenn sie das Ergebnis einer Berechnung oder eines Funktionsaufrufs sind.

15.2.5.3. Leistungsprobleme

Mit den Standardparametern versucht die Engine für virtuelle Layer, den Typ der verschiedenen Spalten der Abfrage zu erkennen, einschließlich des Typs der Geometriespalte, falls eine vorhanden ist.

Dies geschieht, wenn möglich, durch Introspektion der Abfrage oder, als letztes Mittel, durch Abrufen der ersten Zeile der Abfrage (LIMIT 1). Das Abrufen der ersten Zeile des Ergebnisses, nur um den Layer zu erstellen, kann aus Leistungsgründen unerwünscht sein.

Die Parameter des Erstellungsdialogs:

  • Eindeutiges Schlüsselfeld: gibt ein Feld der Abfrage an, das eindeutige Integer-Werte darstellt, die QGIS als Zeilenbezeichner verwenden kann. Standardmäßig wird ein autoinkrementierender Integer-Wert verwendet. Die Definition einer eindeutigen Identifizierungsspalte beschleunigt die Auswahl von Zeilen nach der ID.

  • guilabel:Keine Geometrie: erzwingt, dass der virtuelle Layer alle Geometriefelder ignoriert. Der resultierende Layer ist ein reiner Attribut-Layer.

  • Geometrie Geometriespalte: gibt den Namen der Geometriespalte an.

  • Geometrie Typ: gibt den Typ der Geometrie an.

  • Geometrie KBS: gibt das Koordinatenreferenzsystem des virtuellen Layers an.

15.2.5.4. Besondere Bemerkungen

Die Engine des virtuellen Layers versucht, den Typ jeder Spalte der Abfrage zu bestimmen. Gelingt dies nicht, wird die erste Zeile der Abfrage abgerufen, um die Spaltentypen zu bestimmen.

Der Typ einer bestimmten Spalte kann direkt in der Abfrage angegeben werden, indem einige spezielle Kommentare verwendet werden.

Die Syntax lautet wie folgt: /*: type*/. Die Angabe muss direkt nach dem Namen einer Spalte platziert werden. type kann entweder int für Ganzzahlen, real für Gleitkommazahlen oder text sein.

Zum Beispiel:

SELECT id+1 as nid /*:int*/
FROM table

Der Typ und das Koordinatenreferenzsystem der Geometriespalte können auch durch spezielle Kommentare mit der folgenden Syntax festgelegt werden: /*:gtype:srid*/, wobei gtype der Geometrietyp ist (point, linestring, polygon, multipoint, multilinestring oder multipolygon) und `srid eine ganze Zahl, die den EPSG-Code eines Koordinatenreferenzsystems darstellt.

15.2.5.5. Verwendung von Indizes

Wenn ein Layer über einen virtuellen Layer angefordert wird, werden die Indizes der Quell-Layer wie folgt verwendet:

  • wenn ein =-Prädikat für die Primärschlüsselspalte des Layers verwendet wird, wird der zugrunde liegende Datenanbieter nach einer bestimmten ID (FilterFid) gefragt

  • für alle anderen Prädikate (>, <=, !=, usw.) oder für eine Spalte ohne Primärschlüssel wird eine aus einem Ausdruck gebildete Anfrage verwendet, um den zugrunde liegenden Vektordatenanbieter anzufordern. Das bedeutet, dass Indizes bei Datenbankanbietern verwendet werden können, wenn sie existieren.

Es gibt eine spezielle Syntax, um räumliche Prädikate in Anfragen zu behandeln und die Verwendung eines räumlichen Indexes auszulösen: eine versteckte Spalte namens _search_frame_ existiert für jeden virtuellen Layer. Diese Spalte kann auf Gleichheit mit einer Bounding Box verglichen werden. Beispiel:

SELECT *
FROM vtab
WHERE _search_frame_=BuildMbr(-2.10,49.38,-1.3,49.99,4326)

Räumliche binäre Prädikate wie ST_Intersects werden erheblich beschleunigt, wenn sie in Verbindung mit dieser räumlichen Indexsyntax verwendet werden.