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.
Neue Vektorlayer erstellen¶
QGIS erlaubt es Ihnen, neue Shapefile-Layer, neue SpatiaLite-Layer, neue GPX-Layer und neue Temporärlayer zu erstellen. Die Erstellung eines neuen GRASS-Layers wird innerhalb des GRASS-Plugins unterstützt. (Bitte lesen Sie den Abschnitt Einen neuen GRASS Vektorlayer erstellen für weitere Informationen zur Erstellung von GRASS Vektorlayern).
Einen neuen GeoPackage-Layer erstellen¶
Um einen neuen GeoPackage-Layer zu erstellen, gehen Sie zu . Der Neuer GeoPackage-Layer Dialog wird wie in figure_create_geopackage angezeigt.
Der erste Schritt ist die Auswahl eines bestehenden oder die Erstellung eines neuen GeoPackages. Dies kann durch Drücken der Durchsuchen Schaltfläche … rechts neben dem Datenbankfeld erfolgen. Dann geben Sie einen Namen für den neuen Layer an, definieren den Layertyp und geben mit KBS wählen das Koordinatenbezugssystem an.
Um eine Attributtabelle für den neuen GeoPackage-Layer zu definieren, fügen Sie die Namen der zu erstellenden Attributspalten mit dem entsprechenden Spaltentyp hinzu und klicken Sie auf die Schaltfläche Zur Feldliste hinzufügen. Wenn Sie mit den Attributen zufrieden sind, klicken Sie auf OK. QGIS fügt den neuen Layer automatisch zur Legende hinzu, und Sie können ihn auf die gleiche Weise bearbeiten, wie in Abschnitt Einen vorhandenen Layer editieren beschrieben.
Einen neuen Shapedatei-Layer erstellen¶
Um einen neuen Shapedatei-Layer zu erstellen, wählen Sie aus dem Menü oder wählen Sie ihn aus der Werkzeugleiste Datenquellenverwaltungsleiste aus. Der Neuer Shapedatei-Layer Dialog wird angezeigt, wie in figure_create_shapefile gezeigt. Der erste Schritt ist die Angabe eines Pfades und Namens für das Shapefile. QGIS fügt dem Namen automatisch die Erweiterung .shp
hinzu. Als nächstes wählen Sie die Art des Layers (Punkt, Linie oder Polygon) und optional Z Dimension oder M Werte inkludieren sowie das KBS (Koordinatenbezugssystem) wählen .
Um die Erstellung des neuen Shapedatei-Layers abzuschließen, fügen Sie die gewünschten Attribute hinzu, indem Sie für jedes Attribut einen Namen und einen Typ angeben und auf die Schaltfläche Zur Feldliste hinzufügen klicken. Eine erste ‚id‘-Spalte wird standardmäßig hinzugefügt, kann aber auch wieder entfernt werden, falls nicht gewünscht. Es werden nur die Attribute Dezimalzahl , Ganzzahl , Text und Datum unterstützt. Zusätzlich können Sie, abhängig vom Attribut-Typ, auch die Länge und Genauigkeit der neuen Attribut-Spalte definieren. Wenn Sie mit den Attributen zufrieden sind, klicken Sie auf OK. Sobald die Shapedatei erstellt wurde, wird sie der Karte als neuer Layer hinzugefügt, und Sie können sie auf die gleiche Weise bearbeiten, wie in Abschnitt Einen vorhandenen Layer editieren beschrieben.
Creating a new SpatiaLite layer¶
To create a new SpatiaLite layer for editing, choose from the menu or select it from the Data Source Manager toolbar. The New SpatiaLite Layer dialog will be displayed as shown in Figure_create_spatialite.
The first step is to select an existing SpatiaLite database or to create a new SpatiaLite database. This can be done with the … button at the right of the database field. Then, add a name for the new layer, define the layer type, and specify the coordinate reference system with Specify CRS. If desired, you can select Create an autoincrementing primary key.
To define an attribute table for the new SpatiaLite layer, add the names of the attribute columns you want to create with the corresponding column type, and click on the Add to Fields List button. Once you are happy with the attributes, click OK. QGIS will automatically add the new layer to the legend, and you can edit it in the same way as described in section Einen vorhandenen Layer editieren.
Further management of SpatiaLite layers can be done with the DB Manager. See DB Manager Plugin.
Creating a new GPX layer¶
To create a new GPX file, you need to load the GPS plugin first. opens the Plugin Manager Dialog. Activate the GPS Tools checkbox.
When this plugin is loaded, choose
from the menu.
In the Save new GPX file as dialog, choose where to save the
new file and press Save. Three new layers are added to the
Layers Panel: waypoints
, routes
and tracks
with
predefined structure.
Creating a new Temporary Scratch Layer¶
Temporary Scratch Layers are in-memory layers, meaning that they are not saved on disk and will be discarded when QGIS is closed. They can be handy to store features you temporarily need or as intermediate layers during geoprocessing operations.
Empty, editable temporary scratch layers can be defined using or New temporary scratch layer button from the Data Source Manager Toolbar. Here you can create a:
No geometry
type layer, served as simple table,Point
orMultiPoint
layer,LineString/CompoundCurve
orMultiLineString/MultiCurve
layer,Polygon/CurvePolygon
orMultiPolygon/MultiSurface
layer.
By default, a new temporary scratch layer is created without any attribute. But you can also create prepopulated temporary scratch layers using e.g. the clipboard (see Creating new layers from the clipboard) or as a result of a Processing algorithm.
Tipp
Permanently store a memory layer on disk
To avoid data loss when closing project with temporary scratch layers, you can save these layers to any vector format supported by QGIS:
selecting the Make permanent entry in the layer contextual menu;
or as of any other vector layer, using the
entry from the contextual menu or the menu.
Each of these commands prompts the Save Vector Layer as dialog exposed in Creating new layers from an existing layer section and the saved file replaces the temporary one in the Layers panel.
Creating new layers from an existing layer¶
Both raster and vector layers can be saved in a different format and/or reprojected to a different coordinate reference system (CRS) using the Layers panel and selecting:
menu or right-clicking on the layer in thefor raster layer
or for vector layer.
Drag’n drop layer from the layer tree to the PostGIS entry in the Browser Panel. Note that you should have already a PostGIS connection in the Browser Panel.
Common parameters¶
The Save Layer as… dialog shows several parameters to change the behavior when saving the layer. Among the common parameters for raster and vector are:
File name
CRS: can be changed to reproject the data
Add saved file to map: to add the new layer to the canvas
Extent (possible values are layer, Map view or user-defined extent)
However, some parameters are specific to raster and vector formats:
Raster specific parameters¶
Depending on the format of export, some of these options may not be available:
Output mode (it can be raw data or rendered image)
Format: exports to any raster format GDAL can write to, such as GeoTiff, GeoPackage, MBTiles, Geospatial PDF, SAGA GIS Binary Grid, Intergraph Raster, ESRI .hdr Labelled…
Resolution
Create Options: use advanced options (file compression, block sizes, colorimetry…) when generating files, either from the predefined create profiles related to the output format or by setting each parameter.
Pyramids creation
No data values
Vector specific parameters¶
Depending on the format of export, some of these options are available or not:
Format: exports to any vector format GDAL can write to, such as GeoPackage, ESRI Shapefile, AutoCAD DXF, ESRI FileGDB, Mapinfo TAB or MIF, SpatiaLite, CSV, KML, ODS…
Layer name depending on the selected format
Encoding
Save only selected features
Select fields to export and their export options. In case you set your fields behavior with some Edit widgets, e.g.
value map
, you can keep the displayed values in the layer by checking Replace all selected raw fields values by displayed values.Symbology export: can be used mainly for DXF export and for all file formats who manage OGR feature styles (see note below) as DXF, KML, tab file formats:
No symbology: default style of the application that reads the data
Feature symbology: save style with OGR Feature Styles (see note below)
Symbol Layer symbology: save with OGR Feature Styles (see note below) but export the same geometry multiple times if there are multiple symbology symbol layers used
A Scale value can be applied to the latest options.
Bemerkung
OGR Feature Styles are a way to store style directly in the data as a hidden attribute. Only some formats can handle this kind of information. KML, DXF and TAB file formats are such formats. For advanced users, you can read the OGR Feature Styles specification document.
Geometry: you can configure the geometry capabilities of the output layer
geometry type: keeps the original geometry of the features when set to Automatic, otherwise removes or overrides it with any type. You can add an empty geometry column to an attribute table, remove the geometry column of a spatial layer.
Force multi-type: forces creation of multi-geometry features in the layer.
Include z-dimension to geometries.
Tipp
Overriding layer geometry type makes it possible to do things like save a
geometryless table (e.g. .csv
file) into a shapefile WITH any type of
geometry (point, line, polygon), so that geometries can then be manually added
to rows with the Add Part tool.
Datasources Options, Layer Options or Custom Options which allow you to configure some advanced parameters. See the gdal-ogr driver documentation.
When saving a vector layer into an existing file, depending on the capabilities of the output format (Geopackage, SpatiaLite, FileGDB…), the user can decide whether to:
overwrite the whole file
overwrite only the target layer (the layer name is configurable)
append features to the existing target layer
append features, add new fields if there are any.
For formats like ESRI Shapefile, MapInfo .tab, feature append is also available.
Creating new DXF files¶
Besides the Save As… dialog which provides options to export a
single layer to another format, including *.DXF
, QGIS provides another
tool to export multiple layers as a single DXF layers. It’s accessible in the
menu.
In the DXF Export dialog:
Indicate the destination layer file.
Choose the symbology mode and scale (see the OGR Feature Styles note) if applicable.
Select the data Encoding.
Select the CRS to apply: the selected layers will be reprojected to the given CRS.
select the layers to include in the DXF files either by checking each in the table widget or automatically pick them from an existing map theme. The Select All and Deselect All buttons can also help to quickly set the data to export.
For each layer, you can also choose whether to export all the features in a single DXF layer or rely on a field whose values are used to split the features in generated destination layers in the DXF output.
Optionally, you can also choose to:
Creating new layers from the clipboard¶
Features that are on the clipboard can be pasted into a new layer. To do this, Select some features, copy them to the clipboard, and then paste them into a new layer using
and choosing:New Vector Layer…: you need to select the layer CRS, poping up the Save vector layer as… dialog from which you can select any supported data format (see Creating new layers from an existing layer for parameters);
or Temporary Scratch Layer…: you need to select the layer CRS and give a name.
A new layer, filled with selected features and their attributes is created and added to map canvas if asked.
Bemerkung
Creating layers from clipboard is possible with features selected and copied within QGIS as well as features from another application, as long as they are defined using well-known text (WKT) string.
Creating virtual layers¶
Virtual layers are a special kind of vector layer. They allow you to define a layer as the result of an SQL query involving any number of other vector layers that QGIS is able to open. Virtual layers do not carry data by themselves and can be seen as views to other layers.
To create a virtual layer, open the virtual layer creation dialog by:
enabling the Add Virtual Layer tab in the Data Source Manager dialog;
or using the DB Manager dialog tree item.
The dialog allows you to specify a Layer name and an SQL Query. The query can use the name (or id) of loaded vector layers as tables, as well as their field names as columns.
For example, if you have a layer called airports
, you can create a new
virtual layer called public_airports
with an SQL query like:
SELECT *
FROM airports
WHERE USE = "Civilian/Public"
The SQL query will be executed, regardless of the underlying provider of the
airports
layer, even if this provider does not directly support SQL
queries.
Joins and complex queries can also be created, for example, to join airports and country information:
SELECT airports.*, country.population
FROM airports
JOIN country
ON airports.country = country.name
Bemerkung
It’s also possible to create virtual layers using the SQL window of DB Manager Plugin.
Embedding layers for use in queries¶
Besides the vector layers available in the map canvas, the user can add layers to the Embedded layers list, which he can use in queries without the need to have them showing in the map canvas or Layers panel.
To embed a layer, click Add and provide the Local name, Provider, Encoding and the path to the Source.
The Import button allows adding layers loaded in the map canvas into the Embedded layers list. This allows to later remove those layers from the Layers panel without breaking any existent query.
Supported query language¶
The underlying engine uses SQLite and SpatiaLite to operate.
It means you can use all of the SQL your local installation of SQLite understands.
Functions from SQLite and spatial functions from SpatiaLite can also be used in a virtual layer query. For instance, creating a point layer out of an attribute-only layer can be done with a query similar to:
SELECT id, MakePoint(x, y, 4326) as geometry
FROM coordinates
Functions of QGIS expressions can also be used in a virtual layer query.
To refer the geometry column of a layer, use the name geometry
.
Contrary to a pure SQL query, all the fields of a virtual layer query must
be named. Don’t forget to use the as
keyword to name your columns if they
are the result of a computation or function call.
Performance issues¶
With default parameters set, the virtual layer engine will try its best to detect the type of the different columns of the query, including the type of the geometry column if one is present.
This is done by introspecting the query when possible or by fetching the first row of the query (LIMIT 1) at last resort. Fetching the first row of the result just to create the layer may be undesirable for performance reasons.
The creation dialog allows to specify different parameters:
Unique identifier column: this option allows specifying which field of the query represents unique integer values that QGIS can use as row identifiers. By default, an autoincrementing integer value is used. Defining a unique identifier column allows to speed up the selection of rows by id.
No geometry: this option forces the virtual layer to ignore any geometry field. The resulting layer is an attribute-only layer.
Geometry Column: this option allows to specify the name of the column that is to be used as the geometry of the layer.
Geometry Type: this option allows to specify the type of the geometry of the virtual layer.
Geometry CRS: this option allows to specify the coordinate reference system of the virtual layer.
Special comments¶
The virtual layer engine tries to determine the type of each column of the query. If it fails, the first row of the query is fetched to determine column types.
The type of a particular column can be specified directly in the query by using some special comments.
The syntax is the following: /*:type*/
. It has to be placed just after
the name of a column. type
can be either int
for integers, real
for floating point numbers or text
.
For instance:
SELECT id+1 as nid /*:int*/
FROM table
The type and coordinate reference system of the geometry column can also be set
thanks to special comments with the following syntax /*:gtype:srid*/
where
gtype
is the geometry type (point
, linestring
, polygon
,
multipoint
, multilinestring
or multipolygon
) and srid
an
integer representing the EPSG code of a coordinate reference system.
Use of indexes¶
When requesting a layer through a virtual layer, indexes of this source layer will be used in the following ways:
if an
=
predicate is used on the primary key column of the layer, the underlying data provider will be asked for a particular id (FilterFid)for any other predicates (
>
,<=
,!=
, etc.) or on a column without a primary key, a request built from an expression will be used to request the underlying vector data provider. It means indexes may be used on database providers if they exist.
A specific syntax exists to handle spatial predicates in requests and triggers
the use of a spatial index: a hidden column named _search_frame_
exists
for each virtual layer. This column can be compared for equality to a bounding
box. Example:
SELECT *
FROM vtab
WHERE _search_frame_=BuildMbr(-2.10,49.38,-1.3,49.99,4326)
Spatial binary predicates like ST_Intersects
are significantly sped up when
used in conjunction with this spatial index syntax.