Lagen maken¶
Lagen kunnen op veel manieren worden gemaakt, inclusief:
lege lagen vanaf niets;
lagen uit bestaande lagen;
lagen vanaf het klembord;
lagen als resultaat van een SQL-achtige query, gebaseerd op één of meerdere lagen: de virtuele laag.
QGIS verschaft ook gereedschappen om verschillende indelingen te importeren/exporteren.
Nieuwe vectorlagen maken¶
QGIS ondersteunt het maken van nieuwe lagen voor Shapefile, nieuwe SpatiaLite vectorlagen, nieuwe GPX-lagen en nieuwe tijdelijke tekenlagen. Het aanmaken van nieuwe GRASS vectorlagen wordt ondersteund binnen de plug-in GRASS. (Bekijk het gedeelte Maken van een nieuwe GRASS vectorlaag voor meer informatie over het maken van vectorlagen voor GRASS.)
Een nieuwe laag voor GeoPackage maken¶
Ga, om een nieuwe laag voor GeoPackage te maken, naar . Het dialoogvenster Nieuwe laag voor GeoPackage zal worden getoond, zoals weergegeven in figure_create_geopackage.
De eerste stap is om een bestaand GeoPackage te selecteren of om een nieuwe te maken. Dit kan gedaan worden door te drukken op de knop met de ellips … aan de rechterkant van het veld Database. Geef dan een naam op voor de nieuwe laag, definieer het type laag en specificeer het Coördinaten ReferentieSysteem met CRS selecteren.
Voeg, om een attributentabel voor de nieuwe laag van GeoPackage te maken, de namen van de kolommen met attributen die u wilt maken met het overeenkomende type kolom toe en klik op de knop Aan lijst met velden toevoegen. Wanneer u tevreden bent met de attributen, druk dan op OK. QGIS zal automatisch de nieuwe laag toevoegen aan de legenda toevoegen en u kunt deze bewerken op dezelfde manier als beschreven in het gedeelte Het digitaliseren van een bestaande kaartlaag.
Nieuwe Shapefile-laag maken¶
Kies, om een nieuwe laag Shapefile te maken, uit het menu of selecteer het vanaf de werkbalk Databronnen beheren. Het dialoogvenster Nieuwe Shapefile-laag zal worden getoond zoals weergegeven in figure_create_shapefile. De eerste stap is om een pad en naam op te geven voor het Shapefile. QGIS zal automatisch de extensie .shp
toevoegen aan de naam die u specificeert. Kies vervolgens het type laag (punt, lijn of polygoon) en optioneel dimensies Z of M, als ook het CRS (coördinaten referentiesysteem).
Voeg, om het maken van de nieuwe laag voor Shapefile te voltooien, de gewenste attributen toe door een naam en type voor elk attribuut te specificeren en klik op de knop Aan lijst met velden toevoegen. Een eerste kolom ‘id’ wordt standaard toegevoegd maar kan worden verwijderd indien niet gewenst. Alleen attributen Decimaal getal , Geheel getal , Tekst data en Datum worden ondersteund. Aanvullend, afhankelijk van het type attribuut, kunt u ook de breedte en precisie van de nieuwe kolom voor het attribuut definiëren. Als de attributen naar wens zijn, klik dan op OK. Als het Shapefile eenmaal is gemaakt zal die worden toegevoegd aan de kaart als een nieuwe l;aag en kunt u die op dezelfde manier bewerken als is beschreven in het gedeelte Het digitaliseren van een bestaande kaartlaag.
Het maken van een nieuwe SpatiaLite-laag¶
Kies uit het menu om een nieuwe SpatiaLite-laag aan te maken. Het dialoogvenster Nieuwe SpatiaLite-laag wordt geopend zoals weergegeven in Figure_create_spatialite.
De eerste stap is om een bestaande database van SpatiaLite te selecteren of om een nieuwe database voor SpatiaLite aan te maken. Dit kan gedaan worden met de knop … aan de rechterkant van het veld Database. Geef dan een naam voor de nieuwe laag, definieer het type laag en specificeer het Coördinaten Referentie Systeem met CRS selecteren. Indien gewenst kunt u ook het keuzevak Maak een automatisch ophogend primair sleutelveld aan activeren.
Voeg, om een attributentabel te maken voor de nieuwe laag SpatiaLite, de namen van de kolommen met attributen die u wilt maken met het overeenkomende type kolom toe en klik op de knop Aan lijst met velden toevoegen. Wanneer u tevreden bent met de attributen, druk dan op OK. QGIS zal automatisch de nieuwe laag toevoegen aan de legenda toevoegen en u kunt deze bewerken op dezelfde manier als beschreven in het gedeelte Het digitaliseren van een bestaande kaartlaag.
De DB Manager kan gebruikt worden voor overig beheer van SpatiaLite lagen. Zie Plug-in DB Manager.
Een nieuwe GPX-laag maken¶
U moet, om een nieuw GPX-bestand aan te kunnen maken, eerst de plug-in GPS laden. menuselection:Plug-ins –> opent het dialoogvenster Plug-ins beheren en installeren. Activeer het keuzevak GPS-gereedschap.
Kies, als deze plug-in is geladen, in het menu . In het dialoogvenster Nieuw GPX bestand opslaan als kunt u kiezen waar de nieuwe GPX-laag moet worden opgeslagen en druk op Opslaan. Drie nieuwe lagen worden toegevoegd aan het paneel Lagen: waypoints
, routes
en tracks
met een vooraf gedefinieerde structuur.
Een nieuwe tijdelijke tekenlaag maken¶
Tijdelijke tekenlagen zijn geheugenlagen, wat betekent dat zij niet worden opgeslagen op schijf en zullen worden genegeerd als QGIS wordt afgesloten. Zij kunnen handig zijn om objecten op te slaan die u tijdelijk nodig hebt gedurende bewerkingen van geoverwerking.
Lege bewerkbare tijdelijke tekenlagen kunnen worden gedefinieerd met of de knop Nieuwe tijdelijke tekenlaag op de werlkbalk Databronnen beheren. 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.
Standaard wordt een nieuwe tijdelijke tekenlaag gemaakt zonder attributen. Maar u kunt ook vooraf ingevulde tijdelijke tekenlagen maken met bijv het klembord (bekijk Nieuwe lagen maken vanaf het klembord) of als resultaat van een algortime van Processing.
Tip
Een geheugenlaag permanent opslaan op schijf
U kunt deze lagen opslaan naar elke indeling voor vector, die worden ondersteund door QGIS, om gegevensverlies te vermijden bij het sluiten van een project met tijdelijke tekenlagen:
selecteren van het item Permanent maken in het contextmenu van de laag;
of net als voor elke andere vectorlaag, met het item
uit het contextmenu of het menu .
Elk van deze opdrachten geeft het dialoogvenster Vectorlaag opslaan als weer, zoals weergegeven in het gedeelte Nieuwe lagen uit een bestaande laag maken en het opgeslagen bestand vervangt het tijdelijke in het paneel Lagen.
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 het paneelvoor rasterlaag
of voor vectorlaag.
Slepen en neerzetten van een laag vanuit de boom met lagen naar het item PostGIS in het paneel Browser. Onthoud dat u al een verbinding naar PostGIS zou moeten hebben in het paneel Browser.
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
CRS: kan worden gewijzigd om de gegevens opnieuw te projecteren
Voeg opgeslagen bestand toe aan de kaart: om de nieuwe laag toe te voegen aan het kaartvenster
Bereik (mogelijke waarden zijn bereik laag, kaartweergave of gebruikergedefinieerd)
Sommige parameters zijn echter specifiek voor raster- en vectorindelingen:
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
Vectorspecifieke parameters¶
Afhankelijk van de indeling voor het exporteren, zijn enkele van deze opties beschikbaar of niet:
Indeling: exporteert naar elke vectorindeling waar GDAL naar toe kan schrijven, zoals GeoPackage, ESRI Shapefile, AutoCAD DXF, ESRI FileGDB, Mapinfo TAB of MIF, SpatiaLite, CSV, KML, ODS…
Laagnaam afhankelijk van de geselecteerde indeling
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 Edit widgets, 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
Op de laatste opties kan een waarde Schaal worden toegepast.
Notitie
OGR objectstijlen zijn een manier om een stijl direct op te slaan in de gegevens als een verborgen attribuut. Slechts enkele indelingen kunnen dit soort informatie afhandelen. KML, DXF en TAB-bestandsindeling zijn dergelijke indelingen. Voor gevorderde gebruikers, u kunt het document OGR Feature Styles specification lezen.
Geometrie: u kunt de mogelijkheden voor de geometrie van de uitvoerlaag configureren
Type geometrie: behoud de originele geometrie van de objecten indien ingesteld op Automatisch, anders verwijdert of overschrijft het elk type. U kunt een lege geometriekolom toevoegen aan een attributentabel, de geometriekolom 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 Persoonlijke opties die u in staat stellen enkele gevorderde parameters te configureren. Bekijk de documentatie voor het stuurprogramma gdal-ogr.
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.
Nieuwe DXF-bestanden maken¶
Naast het dialoogvenster Opslaan als… dat opties beidt voor het exporteren van één enkele laag naar een andere indeling, inclusief *.DXF
, verschaft QGIS nog een ander gereedschap om meerdere lagen als één enkele DXF-laag te exporteren. Het is toegankelijk via het menu
In het dialoogvenster DXF export:
Geef het bestand met de doellaag aan.
Kies de modus voor symbologie en schaal (bekijk de notitie 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 elke te selecteren in het widget tabel of door ze automatisch te kiezen uit een bestaand kaartthema. De knoppen Alles selecteren en Alles deselecteren kunnen ook helpen om snel de te exporteren gegevens in te stellen.
Voor elke laag kunt u ook kiezen om alle objecten naar één enkele DXF-laag te exporteren of afhankelijk zijn van een veld waarvan de waarden worden gebruikt om de objecten op te splitsen in de gemaakte doellagen van de uitvoer naar DXF.
Optioneel kunt u ook kiezen om:
Titel van laag gebruiken als naam indien ingesteld in plaats van de laagnaam zelf;
Exporteer objecten die overlappen met het huidige kaartbereik;
2D-uitvoer forceren (bijv. om breedte polylijn te ondersteunen);
Labels als elementen MTEXT exporteren of als elementen TEXT.
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…: u dient het CRS voor de laag te kiezen, wat het dialoogvenster Vectorlaag opslaan als… activeert waarin u een ondersteunde gegevensindeling kunt selecteren (bekijk Nieuwe lagen uit een bestaande laag maken voor parameters);
of Tijdelijke tekenlaag…: u dient het CRS voor de laag te kiezen en een naam op te geven.
Een nieuwe laag, gevuld met geselecteerde objecten en hun attributen wordt gemaakt en toegevoegd aan het kaartvenster, indien daarnaar gevraagd.
Notitie
Het maken van lagen vanaf het klembord is van toepassing op geselecteerde en gekopieerde objecten binnen QGIS en ook voor objecten uit andere bronnen die zijn gedefinieerd met behulp van bekende tekst (WKT).
Virtuele lagen maken¶
Virtuele lagen zijn een speciaal soort vectorlaag. Zij stellen u in staat om een laag te definiëren als resultaat van een SQL-query voor elk aantal andere vectorlagen die QGIS in staat is te openen.Virtuele lagen bevatten zelf geen gegevens en kunnen worden gezien als weergaven voor andere lagen.
Open, om een virtuele laag te maken, het dialoogvenster voor het maken van een virtuele laag door:
te klikken op de optie Virtuele laag toevoegen/bewerken in het menu menu;
de tab Virtuele laag in het dialoogvenster Databronnen beheren in te schakelen;
of het item uit het dialoogvenster voor de boom van 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.
Lagen inbedden om in query’s te gebruiken¶
Naast de beschikbare vectorlagen in het kaartvenster, kan de gebruiker lagen toevoegen aan de lijst Ingebedde lagen, die hij kan gebruiken in query’s zonder de noodzaak om ze weer te geven 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, die zijn geladen in het kaartvenster, toe te voegen aan de lijst Ingebedde lagen. Dit maakt het mogelijk deze lagen later uit het paneel Lagen te verwijderen zonder ene bestaande query te beschadigen.
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.
In tegenstelling tot een pure query in SQL, moeten alle velden voor een virtuele laag worden benoemd. Vergeet niet het sleutelwoord as
te gebruiken om uw kolommen te benoemen als zij het resultaat zijn van een berekening of aanroep van een functie.
Problemen bij de uitvoering¶
Als standaard parameters zijn ingesteld, zal het programma voor de virtuele laag zijn best doen om de verschillende typen kolommen van de query te detecteren, inclusief het type van de geometriekolom als er een aanwezig is.
Dit wordt gedaan door middel van introspectie van de query indien mogelijk of door, als laatste middel, de eerste rij van de query op te halen (LIMIT 1). Ophalen van de eerste rij voor slechts het maken van de laag zou ongewenst kunnen zijn om redenen van uitvoering.
Het dialoogvenster voor het maken maakt het mogelijk verschillende parameters te specificeren:
Unieke kolom voor identificatie: deze optie maakt het mogelijk te specificeren welk veld van de query de unieke integere waarden weergeeft die QGIS kan gebruiken als identificatie voor de rijen. Standaard wordt een zichzelf ophogende waarde integer gebruikt. Specificeren van een unieke kolom voor identificatie maakt het mogelijk het selecteren van rijen op ID te versnellen.
Geen geometrie: deze optie forceert de virtuele laag om een veld voor geometrie te negeren. De resulterende laag is een laag met alleen attributen.
Geometrie:guilabel;`kolom`: deze optie maakt het mogelijk de naam van de kolom te specificeren die moet worden gebruikt als de geometrie voor de laag.
Geometrie :guilabel;`Type`: deze optie maakt het mogelijk het type geometrie voor de virtuele laag te specificeren.
Geometrie CRS: deze optie maakt het mogelijk het coördinaten referentiesystem voor de virtuele laag te specificeren.
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 numbers 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.
Indexen gebruiken¶
Bij het verzoeken om een laag door middel van een virtuele laag zullen indexen van de bronlaag op de volgende manieren worden 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 ene 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 predicaten zoals ST_Intersects
werken significanter sneller indien zij gebruikt worden in samenwerking met deze syntaxis voor ruimtelijke index.