13.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.
13.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.
13.2.1.1. Een nieuwe laag voor GeoPackage maken
Druk, om een nieuwe laag voor GeoPackage te maken, op de knop in het menu of vanaf de werkbalk Databronnen beheren toolbar. Het dialoogvenster Nieuwe laag voor GeoPackage zal worden weergegeven, zoals getoond in Fig. 13.15.
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.
Geef de nieuwe laag / tabel een naam (Tabelnaam)
Definieer het Type geometrie. Indien geen laag zonder geometrie kunt u specificeren of het Z- dimensie opnemen en/of M-waarden opnemen moet gebruiken.
Velden toevoegen aan de laag die u maakt:
Voer de Naam van het veld in
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.
Voer de Maximumlengte voor waarden in, afhankelijk van de geselecteerde indeling van de gegevens.
Voer de stappen hierboven opnieuw uit voor elk veld dat u wilt toevoegen
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.
13.2.1.2. Nieuwe Shapefile-laag maken
Druk, om een nieuwe laag voor de indeling ESRI Shapefile te maken, op de knop in het menu of op de werkbalk Databronnen beheren. Het dialoogvenster Nieuwe Shapefile-laag zal worden weergegeven, zoals getoond in Fig. 13.16.
Geef een pad en bestandsnaam op met de knop … naast Bestandsnaam. QGIS zal automatisch de juiste extensie toevoegen aan de naam die u opgeeft.
Geef vervolgens de Bestandscodering aan van de gegevens
Kies het Type geometrie voor de laag: Geen geometrie (resulterend in een bestand in de indeling
.DBF
), punt, multipunt, lijn of polygoonSpecificeer of de geometrie aanvullende dimensies: Geen, Z (+ M-waarden) of M-waarden zou moeten hebben
Velden toevoegen aan de laag die u maakt:
Voer de Naam van het veld in
Selecteer het Type gegevens. Alleen de attributen Decimaal getal, Geheel getal, Tekst-data en Datum worden ondersteund.
Voer de Lengte en Precisie in, afhankelijk van de geselecteerde indeling voor de gegevens.
Voer de stappen hierboven opnieuw uit voor elk veld dat u wilt toevoegen
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.
13.2.1.3. Het maken van een nieuwe SpatiaLite-laag
Druk, om een nieuwe laag voor SpatiaLite te maken, op de knop in het menu of op de werkbalk Databronnen beheren. Het dialoogvenster Nieuwe SpatiaLite-laag zal worden weergegeven, zoals getoond in Fig. 13.17.
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.
Geef een naam (Laagnaam) op voor de nieuwe laag
Definieer het Type geometrie. Indien geen laag zonder geometrie kunt u specificeren of het Z- dimensie opnemen en/of M-waarden opnemen moet gebruiken.
Velden toevoegen aan de laag die u maakt:
Voer de Naam van het veld in
Selecteer het Type gegevens. Ondersteunde types zijn Tekst-data, geheel getal en Decimaal getal.
Voer de stappen hierboven opnieuw uit voor elk veld dat u wilt toevoegen
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 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.
13.2.1.4. Een nieuwe GPX-laag maken
U moet, om een nieuw GPX-bestand te maken, eerst de plug-in GPS-gereedschap laden. opent het dialoogvenster Plug-ins. Activeer het keuzevak GPS-gereedschap.
Wanneer de plug-in is geladen, kies uit het menu . In het dialoogvenster, kies waar het nieuwe bestand moet worden opgeslagen en druk op Opslaan. Drie nieuwe lagen worden toegevoegd aan het paneel Lagen: waypoints
, routes
en tracks
.
13.2.1.5. 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 in het menu of op de werkbalk Databronnen beheren. Het dialoogvenster Nieuwe tijdelijke tekenlaag zal worden weergegeven, zoals getoond in Fig. 13.18. Dan:
Geef de Laagnaam op
Selecteer het type Geometrie. Hier kunt u maken een:
Geen geometrie
type laag, aangeboden als eenvoudige tabel,Punt
ofMultiPunt
laag,Lijn/CompoundCurve
ofMultiLijn/MultiCurve
laag,Polygoon/CurvePolygon
ofMultiPolygoon/MultiSurface
laag.
Specificeer, voor typen geometrie, de dimensies van de gegevensset: selecteer of het Z-dimensie opnemen en/of M-waarden opnemen moet gebruiken
Voeg velden toe aan de laag. Onthoud dat, anders dan vele indelingen, tijdelijke lagen gemaakt kunnen worden zonder velden. Deze stap is dus optioneel.
Voer de Naam van het veld in
Selecteer het Type gegevens. Tekst-data, Geheel getal, Decimaal getal, Boolean, Datum, Tijd, Datum & tijd en Binair (BLOB) worden ondersteund.
Voer de Lengte en Precisie in, afhankelijk van de geselecteerde indeling voor de gegevens.
Herhaal de stappen hierboven voor elk veld dat u wilt toevoegen
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.
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:
selecteren van het item Permanent maken in het contextmenu van de laag;
met het item
uit het contextmenu of het menu .
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.
13.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 paneel Lagen en te selecteren:
of door met rechts te klikken op de laag in hetvoor rasterlagen
of 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.
13.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 (mogelijke waarden zijn bereik laag, kaartweergave of gebruikergedefinieerd)
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:
13.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
Waarden Geen gegevens
13.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
Velden om te exporteren en hun opties voor exporteren selecteren. In het geval u het gedrag van uw velden instelt met sommige widgets Bewerken, bijv.
unieke waarde
, kunt u de weergegeven waarden in de laag behouden door te selecteren Alle geselecteerde ruwe veldwaarden vervangen door hun weergegeven waarden.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 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.
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.
13.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 .
In het dialoogvenster DXF export:
Geef het doelbestand op.
Kies de modus voor Symbologie en de schaal (bekijk de opmerking OGR Feature Styles), indien van toepassing.
Selecteer de Codering voor de gegevens.
Selecteer het toe te passen CRS: de geselecteerde lagen zullen opnieuw worden geprojecteerd naar het opgegeven CRS.
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:
13.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
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).
13.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 Virtuele laag toevoegen/bewerken te kiezen in het menu ;
de tab 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.
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.
13.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.
13.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.
13.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.
13.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.
13.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.