Belangrijk

Vertalen is een inspanning van de gemeenschap waaraan u deel kunt nemen. Deze pagina is momenteel voor 100.00% vertaald.

15.2. Lagen maken

Lagen kunnen op veel manieren worden gemaakt, inclusief:

  • lege lagen vanuit niets

  • lagen uit bestaande lagen

  • lagen vanaf het klembord

  • lagen als resultaat van een SQL-achtige query, gebaseerd op één of meerdere lagen (virtuele lagen)

QGIS verschaft ook gereedschappen om vanuit/naar verschillende indelingen te importeren/exporteren.

15.2.1. Nieuwe vectorlagen maken

QGIS stelt u in staat nieuwe lagen te maken in verschillende indelingen. Het verschaft gereedschappen voor het maken van GeoPackage, Shapefile, SpatiaLite, GPX-indeling en Tijdelijke tekenlagen (alias geheugenlagen). Maken van een nieuwe laag voor GRASS wordt ondersteund in de plug-in GRASS.

15.2.1.1. Een nieuwe laag voor GeoPackage maken

Druk, om een nieuwe laag voor GeoPackage te maken, op de knop newGeoPackageLayer Nieuwe laag voor GeoPackage… in het menu Kaartlagen ► Laag maken ► of vanaf de werkbalk Databronnen beheren toolbar. Het dialoogvenster Nieuwe laag voor GeoPackage zal worden weergegeven, zoals getoond in Fig. 15.22.

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

Fig. 15.22 Dialoogvenster Nieuwe laag voor GeoPackage maken

  1. De eerste stap is om de locatie van het databasebestand aan te geven. Dit kan worden gedaan door te drukken op de knop rechts van het veld Database en een bestaand bestand voor GeoPackage te selecteren of een nieuw te maken. QGIS zal automatisch de juiste extensie toevoegen aan de naam die u opgeeft.

  2. Geef de nieuwe laag / tabel een naam (Tabelnaam)

  3. Definieer het Type geometrie. Indien geen laag zonder geometrie kunt u specificeren of het Z- dimensie opnemen en/of M-waarden opnemen moet gebruiken.

  4. Specificeer het coördinaten referentiesysteem met de knop setProjection.

Velden toevoegen aan de laag die u maakt:

  1. Voer de Naam van het veld in

  2. Selecteer het Type gegevens. Ondersteunde types zijn Tekst-data, Geheel getal (zowel integer als integer64), Decimaal getal, Datum en Datum & tijd, Binair (BLOB) en Boolean.

  3. Voer de Maximumlengte voor waarden in, afhankelijk van de geselecteerde indeling van de gegevens.

  4. Klik op de knop newAttribute Aan lijst met velden toevoegen

  5. Voer de stappen hierboven opnieuw uit voor elk veld dat u wilt toevoegen

  6. Als u eenmaal tevreden bent met de attributen, klik dan op OK. QGIS zal de nieuwe laag aan de legenda toevoegen, en u kunt het bewerken zoals beschreven in het gedeelte Het digitaliseren van een bestaande kaartlaag.

Standaard maakt QGIS, bij het maken van een laag voor GeoPackage, een Kolom voor ID van object, genaamd fid, die optreedt als de primaire sleutel voor de laag. De naam kan worden gewijzigd. Het veld voor de geometrie, indien beschikbaar, is genaamd geometry, en u kunt kiezen voor Een ruimtelijke index maken. Deze opties zijn te vinden onder de Geavanceerde opties, samen met de Identificatie laag (korte door mensen te lezen naam van de laag) en de Beschrijving laag.

Verder beheer van lagen van GeoPackage kan worden gedaan met de DB Manager.

15.2.1.2. Nieuwe Shapefile-laag maken

Druk, om een nieuwe laag voor de indeling ESRI Shapefile te maken, op de knop newVectorLayer Nieuwe Shapefile-laag… in het menu Kaartlagen ► Laag maken ► of op de werkbalk Databronnen beheren. Het dialoogvenster Nieuwe Shapefile-laag zal worden weergegeven, zoals getoond in Fig. 15.23.

  1. Geef een pad en bestandsnaam op met de knop naast Bestandsnaam. QGIS zal automatisch de juiste extensie toevoegen aan de naam die u opgeeft.

  2. Geef vervolgens de Bestandscodering aan van de gegevens

  3. Kies het Type geometrie voor de laag: Geen geometrie (resulterend in een bestand in de indeling .DBF), punt, multipunt, lijn of polygoon

  4. Specificeer of de geometrie aanvullende dimensies: Geen, Z (+ M-waarden) of M-waarden zou moeten hebben

  5. Specificeer het coördinaten referentiesysteem met de knop setProjection.

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

Fig. 15.23 Dialoogvenster Nieuwe Shapefile-laag maken

Velden toevoegen aan de laag die u maakt:

  1. Voer de Naam van het veld in

  2. Selecteer het Type gegevens. Alleen de attributen Decimaal getal, Geheel getal, Tekst-data en Datum worden ondersteund.

  3. Voer de Lengte en Precisie in, afhankelijk van de geselecteerde indeling voor de gegevens.

  4. Klik op de knop newAttribute Aan lijst met velden toevoegen

  5. Voer de stappen hierboven opnieuw uit voor elk veld dat u wilt toevoegen

  6. Als u eenmaal tevreden bent met de attributen, klik dan op OK. QGIS zal de nieuwe laag aan de legenda toevoegen, en u kunt het bewerken zoals beschreven in het gedeelte Het digitaliseren van een bestaande kaartlaag.

Standaard wordt eerst een kolom id, integer, toegevoegd, maar die kan worden verwijderd.

15.2.1.3. Het maken van een nieuwe SpatiaLite-laag

Druk, om een nieuwe laag voor SpatiaLite te maken, op de knop newSpatiaLiteLayer Nieuwe SpatiaLite-laag… in het menu Kaartlagen ► Laag maken ► of op de werkbalk Databronnen beheren. Het dialoogvenster Nieuwe SpatiaLite-laag zal worden weergegeven, zoals getoond in Fig. 15.24.

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

Fig. 15.24 Dialoogvenster Nieuwe SpatiaLite-laag maken

  1. De eerste stap is om de locatie van het databasebestand aan te geven. Dit kan worden gedaan door te drukken op de knop rechts van het veld Database en selecteer een bestaand bestand voor SpatiaLite of maak een nieuw. QGIS zal automatisch de juiste extensie toevoegen aan de naam die u opgeeft.

  2. Geef een naam (Laagnaam) op voor de nieuwe laag

  3. Definieer het Type geometrie. Indien geen laag zonder geometrie kunt u specificeren of het Z- dimensie opnemen en/of M-waarden opnemen moet gebruiken.

  4. Specificeer het coördinaten referentiesysteem met de knop setProjection.

Velden toevoegen aan de laag die u maakt:

  1. Voer de Naam van het veld in

  2. Selecteer het Type gegevens. Ondersteunde types zijn Tekst-data, Geheel getal, Decimaal getal, Datum en Datum & tijd.

  3. Klik op de knop newAttribute Aan lijst met velden toevoegen

  4. Voer de stappen hierboven opnieuw uit voor elk veld dat u wilt toevoegen

  5. Als u eenmaal tevreden bent met de attributen, klik dan op OK. QGIS zal de nieuwe laag aan de legenda toevoegen, en u kunt het bewerken zoals beschreven in het gedeelte Het digitaliseren van een bestaande kaartlaag.

Indien gewenst kunt u checkbox Maak een automatisch ophogend primair sleutelveld aan selecteren in het gedeelte Geavanceerde opties. U kunt ook de Geometriekolom hernoemen (standaard geometry).

Verder beheer van lagen van SpatiaLite kan worden gedaan met de DB Manager.

15.2.1.4. Een nieuwe laag met mazen maken

Druk, om een nieuwe laag met mazen te maken, op de knop newMeshLayer Nieuwe Laag met mazen… in het menu Kaartlagen ► Laag maken ► of vanaf de werkbalk Databronnen beheren. Het dialoogvenster Nieuwe Laag met mazen zal worden weergegeven zoals getoond in Fig. 15.25.

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

Fig. 15.25 Dialoogvenster voor maken van nieuwe Laag met mazen

  1. De eerste stap is om de locatie van het bestand met de mazen aan te geven. Dit kan worden gedaan door te drukken op de knop rechts van het veld Bestandsnaam en selecteer een bestaand bestand met mazen of een nieuw te maken.

  2. Geef een naam op (Laagnaam), d.i. de naam waarmee de laag wordt weergegeven in het paneel Lagen

  3. Selecteer de Bestandsindeling: momenteel ondersteunde bestandsindelingen voor mazen zijn 2DM Mesh File (*.2dm), Selafin File (*.slf) en UGRID (*.nc).

  4. Geef het Coördinaten ReferentieSysteem aan dat moet worden toegewezen aan de gegevensset

  5. Bovenstaande stappen zullen een lege laag maken waarin u nadien punten kunt digitaliseren en groepen van gegevenssets kunt toevoegen. Het is echter ook mogelijk de laag te initialiseren met een bestaande laag met mazen, d.i. de nieuwe laag vullen met punten of zijden vanuit de andere. Om dat te doen:

    1. Selecteer checkbox Mazen initialiseren met

    2. en selecteer ofwel Mazen uit het huidige project of Mazen uit bestand. Informatie over het geselecteerde bestand met mazen wordt ter controle weergegeven.

    Merk op dat alleen het frame van de laag met mazen wordt overgebracht naar de nieuwe laag; hun gegevenssets worden niet gekopieerd.

15.2.1.5. Een nieuwe GPX-laag maken

Een nieuw GPX-bestand maken:

  1. Selecteer Laag maken ► newGpx Nieuwe GPX-laag… uit het menu Kaartlagen.

  2. Kies, in het dialoogvenster, waar het nieuwe bestand moet worden opgeslagen, geef het een naam en druk op Opslaan.

  3. Drie nieuwe lagen zijn toegevoegd aan het paneel Lagen.

    • een puntenlaag om locaties te digitaliseren (waypoints) met velden voor het opslaan van de naam, hoogte, opmerking, omschrijving, bron, URL en naam van de URL

    • een lijnenlaag om reeksen van locaties die samen een geplande route vormen te digitaliseren (routes) met velden voor het opslaan van de naam, symbool, nummer, opmerking, omschrijving, bron, URL en naam van de URL

    • en een lijnenlaag om de verplaatsing van de ontvanger in tijd vast te leggen (tracks) met velden voor het opslaan van de naam, symbool, nummer, opmerking, omschrijving, bron, URL en naam van de URL.

  4. U kunt nu elk daarvan bewerken, zoals beschreven in het gedeelte Het digitaliseren van een bestaande kaartlaag.

15.2.1.6. Een nieuwe tijdelijke tekenlaag maken

Tijdelijke tekenlagen zijn in-geheugenlagen, wat betekent dat zij niet worden opgeslagen op schijf en zullen worden verwijderd als QGIS wordt afgesloten. Zij kunnen handig zijn voor het opslaan van objecten die u tijdelijk nodig hebt of als tussenliggende lagen gedurende bewerkingen voor geoprocessing.

Kies, om een nieuwe Tijdelijke tekenlaag te maken, het item createMemory Nieuwe tijdelijke tekenlaag… in het menu Kaartlagen ► Laag maken ► of op de werkbalk Databronnen beheren. Het dialoogvenster Nieuwe tijdelijke tekenlaag zal worden weergegeven, zoals getoond in Fig. 15.26. Dan:

  1. Geef de Laagnaam op

  2. Selecteer het type Geometrie. Hier kunt u maken een:

    • Geen geometrie type laag, aangeboden als eenvoudige tabel,

    • Punt of MultiPunt laag,

    • Lijn/CompoundCurve of MultiLijn/MultiCurve laag,

    • Polygoon/CurvePolygon of MultiPolygoon/MultiSurface laag.

  3. Specificeer, voor typen geometrie, de dimensies van de gegevensset: selecteer of het Z-dimensie opnemen en/of M-waarden opnemen moet gebruiken

  4. Specificeer het coördinaten referentiesysteem met de knop setProjection.

  5. Voeg velden toe aan de laag. Onthoud dat, anders dan vele indelingen, tijdelijke lagen gemaakt kunnen worden zonder velden. Deze stap is dus optioneel.

    1. Voer de Naam van het veld in

    2. Selecteer het Type gegevens. Tekst-data, Geheel getal, Decimaal getal, Boolean, Datum, Tijd, Datum & tijd en Binair (BLOB) worden ondersteund.

    3. Voer de Lengte en Precisie in, afhankelijk van de geselecteerde indeling voor de gegevens.

    4. Klik op de knop newAttribute Aan lijst met velden toevoegen

    5. Herhaal de stappen hierboven voor elk veld dat u wilt toevoegen

  6. Als u eenmaal tevreden bent met de instellingen, klik dan op OK. QGIS zal de nieuwe laag aan het paneel Lagen toevoegen, en u kunt het bewerken zoals beschreven in het gedeelte Het digitaliseren van een bestaande kaartlaag.

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

Fig. 15.26 Dialoogvenster Nieuwe tijdelijke tekenlaag maken

U kunt ook vooraf gevulde tijdelijke tekenlagen maken met bijv. het klembord (zie Nieuwe lagen maken vanaf het klembord) of als een resultaat van een algoritme van Processing.

Tip

Een geheugenlaag permanent opslaan op schijf

U kunt, om gegevensverlies te voorkomen bij het sluiten van een project met tijdelijke tekenlagen, deze lagen opslaan naar elke indeling voor vector die wordt ondersteund door QGIS:

  • klikken op het pictogram indicatorMemory naast de laag;

  • selecteren van het item Permanent maken in het contextmenu van de laag;

  • met het item Exporteren ► uit het contextmenu of het menu Kaartlagen ► Opslaan als….

Elk van deze opdrachten opent het dialoogvenster Vectorlaag opslaan als, zoals beschreven in het gedeelte Nieuwe lagen uit een bestaande laag maken, en het opgeslagen bestand vervangt het tijdelijke in het paneel Lagen.

15.2.2. Nieuwe lagen uit een bestaande laag maken

Zowel raster- als vectorlagen kunnen worden opgeslagen in verschillende indelingen en/of opnieuw worden geprojecteerd in een ander coördinaten referentiesysteem (CRS) met het menu Kaartlagen ► Opslaan als… of door met rechts te klikken op de laag in het paneel Lagen en te selecteren:

  • Exporteren ► Opslaan als… voor rasterlagen

  • Exporteren ► Objecten opslaan als… of Exporteren ► Geselecteerde objecten opslaan als… voor vectorlagen.

  • Sleep de laag uit de boom met lagen naar het item PostGIS in het paneel Browser en zet hem daar neer. Onthoud dat u een verbinding naar PostGIS moet hebben in het paneel Browser.

15.2.2.1. Algemene parameters

Het dialoogvenster Opslaan als… geeft verscheidene parameters weer om het gedrag te wijzigen bij het opslaan van de laag. Onderdeel van de algemene parameters voor raster en vector zijn:

  • Bestandsnaam: de locatie van het bestand op de schijf. Het mag verwijzen naar de uitvoerlaag of naar een container die de laag opslaat (bijvoorbeeld database-achtige indelingen zoals GeoPackage, SpatiaLite of OpenDocument-werkbladen).

  • CRS: kan worden gewijzigd om de gegevens opnieuw te projecteren

  • Bereik: beperkt het bereik van de invoer dat zal worden geëxporteerd met de widget Bereik selecteren

  • Voeg opgeslagen bestand toe aan de kaart: om de nieuwe laag toe te voegen aan het kaartvenster

Sommige parameters zijn echter specifiek voor raster- en vectorindelingen:

15.2.2.2. Rasterspecifieke parameters

Afhankelijk van de indeling voor het exporteren, zouden enkele van deze opties wel of niet beschikbaar kunnen zijn:

  • Modus uitvoer (kan zijn ruwe gegevens of gerenderde afbeelding)

  • Indeling: exporteert naar elke rasterindeling waar GDAL naar toe kan schrijven, zoals GeoTiff, GeoPackage, MBTiles, Geospatial PDF, SAGA GIS Binary Grid, Intergraph Raster, ESRI .hdr Labelled…

  • Resolutie

  • Opties voor aanmaken: gebruik geavanceerde opties (bestandscompressie, blokgrootten, kleurbepaling…) bij het maken van bestanden, ofwel uit de vooraf gedefinieerde profielen voor maken gerelateerd aan de indeling voor uitvoer of door elke parameter in te stellen.

  • Piramiden maken

  • VRT-tegels in het geval u koos voor checkbox VRT maken

  • Waarden Geen gegevens

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

Fig. 15.27 Als nieuwe rasterlaag opslaan

15.2.2.3. Vectorspecifieke parameters

Afhankelijk van de indeling voor het exporteren, zouden enkele van deze opties beschikbaar kunnen zijn:

  • Indeling: exporteert naar elke vectorindeling waar GDAL naar toe kan schrijven, zoals GeoPackage, GML, ESRI Shapefile, AutoCAD DXF, ESRI FileGDB, Mapinfo TAB of MIF, SpatiaLite, CSV, KML, ODS, …

  • Laagnaam: beschikbaar als Bestandsnaam verwijst naar een container-achtige indeling, dit item geeft de uitvoerlaag weer.

  • Codering

  • Alleen geselecteerde objecten opslaan

  • Te exporteren veld en hun opties voor exporteren selecteren: verschaft manieren om velden te exporteren met aangepaste namen en instellingen voor widget formulier:

    • Selecteer rijen in de kolom Naam om velden te kiezen die moeten worden behouden in de uitvoerlaag, of druk op de knoppen Alles selecteren of Alles deselecteren

    • Schakel met het keuzevak Aliassen gebruiken voor geëxporteerde naam om de kolom Naam exporteren te vullen met het corresponderende alias van het veld of te herstellen naar de originele veldnaam. Dubbelklikken op een cel zal ook de naam bewerken.

    • Afhankelijk van het feit of aangepaste widgets voor attribuutformulieren in gebruik zijn, kunt u Alle geselecteerde ruwe veldwaarden vervangen door weergegeven waarden. Bijv. als een widget waardenkaart is toegepast op een veld, zal de uitvoerlaag de beschreven waarden bevatten in plaats van de originele waarden. Het vervangen ka ook worden gedaan op een veld-per-veld basis basis, in de kolom Vervangen door weergegeven waarden.

  • Metadata laag vasthouden: zorgt ervoor dat enige metadata voor de laag die aanwezig is in de bronlaag zal worden gekopieerd en opgeslagen:

    • in de nieuw gemaakte laag, als de uitvoer in de indeling GeoPackage is

    • als een bestand .qmd naast de uitvoerlaag, voor andere indelingen. Onthoud dat op bestand gebaseerde indelingen die meer dan één gegevensset ondersteunen (bijv. SpatiaLite, DXF, …) onbedoeld gedrag kunnen vertonen.

  • Exporteren van symbologie: kan voornamelijk worden gebruikt voor exporteren naar DXF en voor alle bestandsindelingen die objectstijlen voor OGR beheren (zie opmerking hieronder) zoals DXF, KML, tab-bestandsindelingen:

    • Geen symbologie: standaard stijl van de toepassing die de gegevens leest

    • Objectsymbologie: stijl opslaan met OGR objectstijlen (zie opmerking hieronder)

    • Symboollaagsymbologie: opslaan met OGR objectstijlen (zie opmerking hieronder) maar exporteer dezelfde geometrie meerdere keren als er meerdere symbologie symboollagen worden gebruikt

    • Een waarde Schaal kan worden toegepast op de laatste opties

Notitie

OGR Feature Styles zijn een manier om stijl direct op te slaan in de gegevens als een verborgen attribuut. Alleen sommige indelingen kunnen dit soort informatie afhandelen. KML-, DXF- en TAB-bestandsindelingen zijn dergelijke indelingen. Voor meer geavanceerde details, kunt u het document specificatie OGR Feature Styles lezen.

  • Geometrie: u kunt de mogelijkheden voor de geometrie van de uitvoerlaag configureren

    • Type geometrie: behoudt de originele geometrie van de objecten indien ingesteld op Automatisch, anders verwijdert het die of overschrijft het met elk type. U kunt een lege geometriekolom toevoegen aan een attributentabel en de geometriekoom van een ruimtelijke laag verwijderen.

    • Multi-type forceren: forceer het maken van multi-geometrie-objecten op de laag.

    • Z-dimensie opnemen in geometrieën.

Tip

Overschrijven van het type geometrie van de laag maakt het mogelijk om dingen te doen zoals het opslaan van een tabel zonder geometrie (bijv. .csv-bestand) in een shapefile MET elk type geometrie (punt, lijn, polygoon), zodat geometrieën dan handmatig kunnen worden toegevoegd aan rijen met het gereedschap addPart Deel toevoegen .

  • Databron opties, Laagopties of Aangepaste opties die u in staat stellen gevorderde parameters te configureren, afhankelijk van de indeling voor de uitvoer. Sommige worden beschreven in Gegevensindelingen en velden verkennen, maar voor de volledige details, bekijk de GDAL documentatie voor het stuurprogramma. Elke bestandsindeling heeft zijn eigen aangepaste parameters, bijv. bekijk voor de indeling GeoJSON de documentatie op GDAL GeoJSON.

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

Fig. 15.28 Als nieuwe vectorlaag opslaan

Bij het opslaan van een vectorlaag in een reeds bestaand bestand, afhankelijk van de mogelijkheden van de indeling voor de uitvoer (Geopackage, SpatiaLite, FileGDB…), kan de gebruiker beslissen om:

  • het gehele bestand te overschrijven

  • alleen de doellaag te overschrijven (de laagnaam is aan te passen)

  • objecten toe te voegen aan de bestaande doellaag

  • objecten toe te voegen, nieuwe velden toe te voegen indien die er zijn.

Voor indelingen zoals ESRI Shapefile, MapInfo .tab is het toevoegen van objecten ook beschikbaar.

15.2.3. Nieuwe DXF-bestanden maken

Naast het dialoogvenster Opslaan als… dat opties verschaft voor het exporteren van één enkele laag naar een andere indeling, inclusief *.DXF, verschaft QGIS een ander gereedschap om meerdere lagen te exporteren naar één enkele laag DXF. Het is toegankelijk via het menu Project ► Importeren/Exporteren ► Exporteer project naar DXF….

In het dialoogvenster DXF export:

  1. Geef het doelbestand op.

  2. Kies de modus voor Symbologie en de schaal (bekijk de opmerking OGR Feature Styles), indien van toepassing.

  3. Selecteer de Codering voor de gegevens.

  4. Selecteer het toe te passen CRS: de geselecteerde lagen zullen opnieuw worden geprojecteerd naar het opgegeven CRS.

  5. Selecteer de in de DXF-bestanden op te nemen lagen, ofwel door ze te selecteren in de widget Tabel of door ze automatisch te kiezen uit een bestaand kaartthema. De knoppen Alles selecteren en Alles deselecteren kunnen helpen om snel de te exporteren gegevens in te stellen.

    Voor elke laag kunt u kiezen of alle objecten naar één enkele DXF-laag moeten worden geëxporteerd of vertrouwen op een veld waarvan de waarden worden gebruikt om de objecten te verdelen in lagen voor de uitvoer in DXF.

Optioneel kunt u ook kiezen om:

  • checkbox Titel van laag gebruiken als naam indien ingesteld in plaats van de laagnaam zelf;

  • checkbox Exporteer objecten die overlappen met het huidige kaartbereik;

  • unchecked 2D-uitvoer forceren (bijv. om breedte polylijn te ondersteunen);

  • checkbox Labels als elementen MTEXT exporteren of als elementen TEXT.

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

Fig. 15.29 Dialoogvenster Exporteer project naar DXF

15.2.4. Nieuwe lagen maken vanaf het klembord

Objecten die op het klembord staan kunnen worden geplakt in een nieuwe laag. maak de laag eerst bewerkbaar om dit te kunnen doen. Selecteer enkele objecten, kopieer ze naar het klembord en plak ze dan in de nieuwe laag met behulp van Bewerken ► Objecten plakken als ► en kies:

  • Nieuwe vectorlaag…: het dialoogvenster Vectorlaag opslaan als… verschijnt (zie Nieuwe lagen uit een bestaande laag maken voor parameters)

  • of Tijdelijke tekenlaag…: u dient een naam op te geven voor de laag

Een nieuwe laag, gevuld met de geselecteerde objecten en hun attributen, wordt gemaakt (en toegevoegd aan het kaartvenster).

Notitie

Lagen maken vanaf het klembord is mogelijk met geselecteerde objecten en gekopieerd binnen QGIS, als ook vanuit andere toepassingen, zolang als hun geometrieën maar zijn gedefinieerd met well-known text (WKT).

15.2.5. Virtuele lagen maken

Een virtuele laag is een speciaal soort vectorlaag. Het stelt u in staat een laag te definiëren als resultaat van een SQL-query die elk aantal andere vectorlagen kan bevatten die QGIS in staat is te openen. Virtuele lagen dragen zelf geen gegevens en kunnen worden gezien als views.

Open, om een virtuele laag te maken, het dialoogvenster voor het maken van een virtuele laag door:

  • het item addVirtualLayer Virtuele laag toevoegen/bewerken te kiezen in het menu Kaartlagen ► Laag toevoegen ►;

  • de tab addVirtualLayer Virtuele laag in het dialoogvenster Databronnen beheren in te schakelen;

  • of de boom in het dialoogvenster DB Manager te gebruiken.

Het dialoogvenster stelt u in staat een Laagnaam en een SQL-Query te specificeren. De query mag de naam (of ID) van bestaande vectorlagen als tabellen gebruiken, als ook hun veldnamen als kolommen.

Indien u bijvoorbeeld een laag heeft die is genaamd airports, kunt u een nieuwe virtuele laag maken die is genaamd public_airports met een SQL-query als:

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

De query voor SQL zal worden uitgevoerd, ongeacht de onderliggende provider van de laag airports, zelfs als deze provider niet direct query’s voor SQL ondersteunt.

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

Fig. 15.30 Dialoogvenster Virtuele laag maken

Koppelingen en complexe query’s kunnen ook eenvoudigweg worden gemaakt, bijvoorbeeld om de informatie van airports en country samen te voegen.

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

Notitie

Het is ook mogelijk virtuele lagen te maken met het venster SQL van Plug-in DB Manager.

15.2.5.1. Lagen inbedden om in query’s te gebruiken

Naast de beschikbare vectorlagen in het kaartvenster, kan de gebruiker ook lagen toevoegen aan de lijst met Ingebedde lagen, die in query’s kan worden gebruikt zonder de noodzaak om ze te hebben weergegeven in het kaartvenster of het paneel Lagen.

Klik, om een laag in te bedden, op Toevoegen en geef de Lokale naam, Provider, Codering en het pad naar de Bron op.

De knop Importeren maakt het mogelijk lagen vanuit het kaartvenster toe te voegen aan de lijst Ingebedde lagen. Deze lagen kunnen dan uit het paneel Lagen worden verwijderd, zonder bestaande query’s te beschadigen.

15.2.5.2. Ondersteunde taal voor query

Het onderliggende programma gebruikt SQLite en SpatiaLite voor bewerkingen.

Dat betekent dat u alles voor SQL kunt gebruiken dat uw lokale installatie van SQLite begrijpt.

Functies uit SQLite en ruimtelijke functies uit SpatiaLite kunnen ook worden gebruikt voor een query voor een virtuele laag. Maken van bijvoorbeeld een puntenlaag uit een laag met alleen attributen kan worden gedaan met een query soortgelijk aan:

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

Functies van expressies van QGIS kunnen ook worden gebruikt in een query voor een virtuele laag.

Gebruik de naam geometry om te verwijzen naar de geometriekolom van een laag.

Tegengesteld aan een pure SQL-query, moeten alle velden van een query voor een virtuele laag een naam hebben. Vergeet niet het sleutelwoord as te gebruiken om uw kolommen een naam te geven als zij het resultaat zijn van een berekening of de aanroep van een functie.

15.2.5.3. Problemen bij de uitvoering

Met standaard parameters zal het programma voor virtuele lagen zijn best doen om het type van de verschillende kolommen van de query te bepalen, inclusief het type van de geometriekolom, als die aanwezig is.

Dit wordt gedaan door introspectie van de query waar mogelijk of door de eerste rij van de query op te halen (LIMIT 1) als een laatste redmiddel. Ophalen van de eerste rij van het resultaat om uiteindelijk de laag te maken zou ongewenst kunnen zijn om redenen van uitvoering.

Het dialoogvenster voor het maken van de parameters:

  • Unieke kolom voor identificatie: specificeert een veld van de query dat unieke waarden integer weergeeft, die QGIS kan gebruiken als identificatie voor rijen. Standaard wordt een automatisch verhogende waarde integer gebruikt. Definiëren van een unieke kolom voor identificatie versnelt het selecteren van rijen op ID.

  • Geen geometrie: forceert de virtuele laag om elk veld voor geometrie te negeren. De resulterende laag is een laag met alleen attributen.

  • Geometrie Geometriekolom: specificeert de naam van de geometriekolom.

  • Geometrie Type: specificeert het type geometrie.

  • Geometrie CRS: specificeert het coördinaten referentiesysteem voor de virtuele laag.

15.2.5.4. Speciale opmerkingen

Het programma voor de virtuele laag probeert het type te bepalen voor elke kolom van de query. Als dat mislukt wordt de eerste rij van de query opgehaald om typen kolommen te bepalen.

Het type van een bepaalde kolom kan direct in de query worden gespecificeerd met behulp van enkele speciale opmerkingen.

De syntaxis is de volgende: /*:type*/. Het moet worden geplaatst net na de naam van een kolom. type mag zijn int voor integers, real voor floating point-getallen of text.

Bijvoorbeeld:

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

Het type en coördinaten referentiesysteem van de geometriekolom kan ook worden ingesteld dankzij speciale opmerkingen met de volgende syntaxis /*:gtype:srid*/ waar gtype het type geometrie is (point, linestring, polygon, multipoint, multilinestring of multipolygon) en srid een integer die de code voor EPSG van een coördinaten referentiesysteem weergeeft.

15.2.5.5. Indexen gebruiken

Bij het bevragen van een laag door middel van een virtuele laag, worden de indices van de bronlaag op de volgende manieren gebruikt:

  • als een predicaat = wordt gebruikt in de kolom voor de primaire sleutel van de laag, zal de onderliggende gegevensprovider worden gevraagd naar een bepaalde ID (FilterFid)

  • voor elk ander predicaat (>, <=, !=, etc.) of op een kolom zonder primaire sleutel zal een verzoek dat is opgebouwd uit een expressie worden gebruikt om de onderliggende gegevensprovider te bevragen. Dat betekent dat indexen, als zij bestaan, kunnen worden gebruikt voor databaseproviders.

Er bestaat een specifieke syntaxis om ruimtelijke predicaten in verzoeken af te handelen en het gebruiken van een ruimtelijke index te activeren: er bestaat voor elke virtuele laag een verborgen kolom, genaamd _search_frame_. Deze kolom mag voor gelijkheid worden vergeleken met een begrenzingsvak. Voorbeeld:

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

Ruimtelijke binaire gezegdes als ST_Intersects worden significant versneld als zij samen worden gebruikt met deze syntaxis voor ruimtelijke indexen.