Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 99.23%.
11.2. Skapa lager
Lager kan skapas på många olika sätt, bland annat:
tomma lager från början
lager från befintliga lager
lager från urklipp
lager som ett resultat av en SQL-liknande fråga baserad på ett eller flera lager (virtual layers)
QGIS innehåller också verktyg för att importera/exportera från/till olika format.
11.2.1. Skapa nya vektorlager
I QGIS kan du skapa nya lager i olika format. Det finns verktyg för att skapa GeoPackage-, Shapefile-, SpatiaLite-, GPX-format och Temporary Scratch-lager (även kallade minneslager). Skapande av ett nytt GRASS-lager stöds inom GRASS-tillägget.
11.2.1.1. Skapa ett nytt GeoPackage-lager
Du skapar ett nytt GeoPackage-lager genom att trycka på knappen i menyn eller i verktygsfältet Data Source Manager. Du kan också skapa ett nytt GeoPackage-lager via Browser Panel genom att välja Create Database and Layer…. Dialogrutan New GeoPackage Layer visas enligt bilden i Fig. 11.24.

Fig. 11.24 Skapa en ny dialogruta för GeoPackage-lager
Det första steget är att ange databasfilens plats. Detta kan göras genom att trycka på knappen … till höger om fältet Database och välja en befintlig GeoPackage-fil eller skapa en ny. QGIS kommer automatiskt att lägga till rätt tillägg till det namn du anger.
Ge det nya lagret / tabellen ett namn (Tabellnamn)
Definiera Geometri typ. Om det inte är ett geometrilöst lager kan du ange om det ska Inkludera Z-dimension och/eller Inkludera M-värden.
Ange referenssystemet för koordinaterna med hjälp av knappen
För att lägga till fält i det lager du skapar:
Ange fältets Namn
Välj data Type. Följande typer stöds: Textdata, Hela tal (både heltal och heltal64), Decimaltal, Datum och Datum och tid, Binär (BLOB) och Boolean.
Ange värdenas Maximala längd beroende på det valda dataformatet.
Klicka på knappen
Add to Fields List (Lägg till i listan över fält)
Upprepa stegen ovan för varje fält som du behöver lägga till
Du kan senare ändra fältordningen med hjälp av knapparna
Flytta upp och
Flytta ner
När du är nöjd med attributen klickar du på OK. QGIS lägger till det nya lagret i teckenförklaringen och du kan redigera det enligt beskrivningen i avsnitt Digitalisering av ett befintligt lager.
När ett GeoPackage-lager skapas genererar QGIS som standard en Feature id column som kallas fid
och som fungerar som primärnyckel för lagret. Namnet kan ändras. Geometrifältet, om det finns, får namnet geometry
och du kan välja att Create a spatial index på det. Dessa alternativ finns under Advanced Options tillsammans med Layer identifier (kort mänskligt läsbart namn på lagret) och Layer description.
Ytterligare hantering av GeoPackage-lager kan göras med DB Manager.
11.2.1.2. Skapa ett nytt Shapefile-lager
Om du vill skapa ett nytt lager i ESRI Shapefile-format trycker du på knappen i menyn eller i verktygsfältet Datakällshanterare. Dialogrutan Nytt Shapefil-lager visas som visas i Fig. 11.25.
Ange en sökväg och ett filnamn med hjälp av knappen … bredvid Filnamn. QGIS kommer automatiskt att lägga till rätt tillägg till det namn du anger.
Ange sedan Filkodning för data
Välj Geometrityp för lagret: Ingen geometri (resulterar i en fil i formatet
.DBF
), punkt, multipunkt, linje eller polygonAnge om geometrin ska ha ytterligare dimensioner: None, Z (+ M värden) eller M värden
Ange referenssystemet för koordinaterna med hjälp av knappen

Fig. 11.25 Skapa en ny Shapefile-lagerdialog
För att lägga till fält i det lager du skapar:
Ange fältets Namn
Välj data Typ. Endast attributen Decimal number, Whole number, Text data, Date och Boolean stöds.
Beroende på valt dataformat anger du Längd och Precision.
Klicka på knappen
Add to Fields List (Lägg till i listan över fält)
Upprepa stegen ovan för varje fält som du behöver lägga till
Du kan senare ändra fältordningen med hjälp av knapparna
Flytta upp och
Flytta ner
När du är nöjd med attributen klickar du på OK. QGIS lägger till det nya lagret i teckenförklaringen och du kan redigera det enligt beskrivningen i avsnitt Digitalisering av ett befintligt lager.
Som standard läggs en kolumn med första heltalet id
till, men den kan tas bort.
11.2.1.3. Skapa ett nytt SpatiaLite-lager
För att skapa ett nytt SpatiaLite-lager trycker du på knappen i menyn eller i verktygsfältet Datakällshanterare. Dialogrutan Nytt SpatiaLite-lager kommer att visas som visas i Fig. 11.26.

Fig. 11.26 Skapa en dialogruta för ett nytt SpatiaLite-lager
Det första steget är att ange databasfilens plats. Detta kan göras genom att trycka på …-knappen till höger om Database-fältet och välja en befintlig SpatiaLite-fil eller skapa en ny. QGIS kommer automatiskt att lägga till rätt tillägg till det namn du anger.
Ange ett namn (Lagernamn) för det nya lagret
Definiera Geometri typ. Om det inte är ett geometrilöst lager kan du ange om det ska Inkludera Z-dimension och/eller Inkludera M-värden.
Ange referenssystemet för koordinaterna med hjälp av knappen
.
För att lägga till fält i det lager du skapar:
Ange fältets Namn
Välj datatyp Type. Följande typer stöds: Textdata, Hela tal, Decimaltal, Datum och Datumtid.
Klicka på knappen
Add to Fields List (Lägg till i listan över fält)
Upprepa stegen ovan för varje fält som du behöver lägga till
Du kan senare ändra fältordningen med hjälp av knapparna
Flytta upp och
Flytta ner
När du är nöjd med attributen klickar du på OK. QGIS lägger till det nya lagret i teckenförklaringen och du kan redigera det enligt beskrivningen i avsnitt Digitalisering av ett befintligt lager.
Om du vill kan du markera Create an autoincrementing primary key under avsnittet Advanced Options. Du kan också byta namn på kolumnen Geometry (
geometry
som standard).
Ytterligare hantering av SpatiaLite-lager kan göras med DB Manager.
11.2.1.4. Skapa ett nytt Mesh-lager
För att skapa ett nytt Mesh-lager, tryck på knappen i menyn eller från verktygsfältet Data Source Manager. Dialogrutan Nytt nätlager kommer att visas som visas i Fig. 11.27.

Fig. 11.27 Skapa en dialogruta för ett nytt mesh-lager
Det första steget är att ange platsen för mesh-filen. Detta kan göras genom att trycka på knappen … till höger om fältet Filnamn och välja en befintlig mesh-fil eller skapa en ny.
Ange ett namn (Lagernamn), dvs. det namn som lagret visas med i panelen Lager)
Välj File format: för närvarande stöds följande mesh-filformat:
2DM Mesh File (*.2dm)
,Selafin File (*.slf)
ochUGRID (*.nc)
.Ange Koordinatreferenssystem som ska tilldelas datasetet
Ovanstående steg genererar ett tomt lager som du sedan kan digitalisera vertikaler och lägga till datasetgrupper i. Det är dock också möjligt att initiera lagret med ett befintligt mesh-lager, dvs. fylla det nya lagret med vertikaler eller ytor från det andra lagret. För att göra detta:
och välj antingen en Mesh från det aktuella projektet eller Mesh från en fil. Information om den valda mesh-filen visas för kontroll.
Observera att endast ramen för mesh-lagret överförs till det nya lagret; deras dataset kopieras inte.
11.2.1.5. Skapa ett nytt GPX-lager
Så här skapar du en ny GPX-fil:
I dialogrutan väljer du var du vill spara den nya filen, namnger den och trycker på Save.
Tre nya lager läggs till i Lagerpanel:
ett punktlager för att digitalisera platser (
waypoints
) med fält som lagrar namn, höjd, kommentar, beskrivning, källa, webbadress och webbadressnamnett linjelager för att digitalisera sekvenser av platser som utgör en planerad rutt (
routes
) med fält som lagrar namn, symbol, nummer, kommentar, beskrivning, källa, url, url-namnoch ett linjelager för att spåra mottagarens rörelse över tiden (
spår
) med fält som lagrar namn, symbol, nummer, kommentar, beskrivning, källa, webbadress, webbadressnamn.
Du kan nu redigera vilket som helst av dem enligt beskrivningen i avsnitt Digitalisering av ett befintligt lager.
11.2.1.6. Skapa ett nytt temporärt skrapskikt
Temporary Scratch Layers är minneslager, vilket innebär att de inte sparas på disk och kommer att kasseras när QGIS stängs. De kan vara praktiska för att lagra funktioner som du behöver tillfälligt eller som mellanlager under geobearbetning.
För att skapa ett nytt Temporary Scratch-lager, välj posten i menyn eller i verktygsfältet Data Source Manager. Dialogrutan New Temporary Scratch Layer kommer att visas som visas i Fig. 11.28. Och så vidare:
Ange Lagernamn
Välj Geometri typ. Här kan du skapa en:
lager av typen
No geometry
, används som enkel tabell,Point
ellerMultiPoint
lager,LineString/CompoundCurve
ellerMultiLineString/MultiCurve
lager,Polygon/CurvePolygon
ellerMultiPolygon/MultiSurface
lager.
För geometriska typer anger du datauppsättningens dimensioner: kontrollera om den ska Include Z dimension och/eller Include M values
Ange referenssystemet för koordinaterna med hjälp av knappen
.
Lägg till fält i lagret. Observera att till skillnad från många andra format kan tillfälliga lager skapas utan några fält. Detta steg är alltså valfritt.
Ange fältets Namn
Välj data Type: Text, Whole number, Decimal number, Boolean, Date, Time, Date & Time och Binary (BLOB) stöds.
Beroende på det valda dataformatet anger du Längd och Precision
Klicka på knappen
Add to Fields List (Lägg till i listan över fält)
Upprepa stegen ovan för varje fält som du behöver lägga till
Du kan senare ändra fältordningen med hjälp av knapparna
Flytta upp och
Flytta ner
När du är nöjd med inställningarna klickar du på OK. QGIS lägger till det nya lagret i panelen Lager, och du kan redigera det enligt beskrivningen i avsnitt Digitalisering av ett befintligt lager.

Fig. 11.28 Skapa en ny dialogruta för lagret Temporary Scratch
Du kan också skapa förfyllda tillfälliga scratch-lager med hjälp av t.ex. urklipp (se Skapa nya lager från urklipp) eller som ett resultat av en Processing algorithm.
Tips
Permanent lagring av ett minneslager på disk
För att undvika dataförlust när du avslutar ett projekt med tillfälliga scratch-lager kan du spara dessa lager i valfritt vektorformat som stöds av QGIS:
genom att välja Make permanent i lagrets kontextuella meny;
med hjälp av
i snabbmenyn eller i menyn.
Alla dessa kommandon öppnar dialogrutan Spara vektorlager som som beskrivs i avsnittet Skapa nya lager från ett befintligt lager och den sparade filen ersätter den tillfälliga filen i panelen Lager.
11.2.2. Skapa nya lager från ett befintligt lager
Lager (raster, vektor och punktmoln) kan sparas i ett annat format och/eller omprojiceras till ett annat koordinatreferenssystem (CRS) med hjälp av menyn Layers panel och välja:
eller genom att högerklicka på lagret iför raster- och punktmolnslager
eller för vektorlager.
Dra och släpp lagret från lagerträdet till PostGIS-posten i Browser Panel. Observera att du måste ha en PostGIS-anslutning i Browser Panel.
11.2.2.1. Vanliga parametrar
Dialogrutan Save Layer as… visar flera parametrar för att ändra beteendet när lagret sparas. Några av de vanligaste parametrarna för raster och vektor är:
Filnamn: Filens plats på hårddisken. Den kan hänvisa till utdatalagret eller till en behållare som lagrar lagret (t.ex. databasliknande format som GeoPackage, SpatiaLite eller Open Document Spreadsheets).
CRS: kan ändras för att återföra data
Extent: begränsar omfattningen av den indata som ska exporteras med hjälp av widgeten extent_selector
Lägg till sparad fil på kartan: för att lägga till det nya lagret på duken
Vissa parametrar är dock specifika för vissa format:
11.2.2.2. Raster-specifika parametrar
Beroende på exportformat är det möjligt att vissa av dessa alternativ inte är tillgängliga:
Utmatningsläge (det kan vara raw data eller renderad bild)
Format: exporterar till alla rasterformat som GDAL kan skriva till, t.ex. GeoTiff, GeoPackage, MBTiles, Geospatial PDF, SAGA GIS Binary Grid, Intergraph Raster, ESRI .hdr Labelled…
Resolution
Create Options: använd avancerade alternativ (filkomprimering, blockstorlekar, kolorimetri …) när du genererar filer, antingen från fördefinierade skapande profiler relaterade till utdataformatet eller genom att ställa in varje parameter.
Pyramider skapelse
Inga datavärden

Fig. 11.29 Spara som ett nytt rasterlager
11.2.2.3. Vektorspecifika parametrar
Beroende på exportformat kan några av dessa alternativ vara tillgängliga:
Format: exporterar till alla vektorformat som GDAL kan skriva till, t.ex. GeoPackage, GML, ESRI Shapefile, AutoCAD DXF, ESRI FileGDB, Mapinfo TAB eller MIF, SpatiaLite, CSV, KML, ODS, …
Lagernamn: tillgänglig när Filnamn hänvisar till ett containerliknande format, denna post representerar utmatningslagret.
Kodning
Spara endast utvalda funktioner
Välj fält som ska exporteras och deras exportalternativ: ger möjlighet att exportera fält med anpassade namn och form widget-inställningar:
Markera raderna under kolumnen Name för att välja fält som ska behållas i utdatalagret, eller tryck på knapparna Markera allt eller Avmarkera allt
Aktivera kryssrutan Use aliases for exported name för att fylla i kolumnen Export name med motsvarande fältalias eller återställa till det ursprungliga fältnamnet. Om du dubbelklickar på en cell redigeras även namnet.
Beroende på om widgetar för attributformulär används kan du ersätta alla valda råa fältvärden med visade värden. Om t.ex. en widget för ”värdekarta” används för ett fält kommer utdatalagret att innehålla beskrivningsvärdena i stället för de ursprungliga värdena. Ersättningen kan också göras fält för fält, i kolumnen Replace with displayed values (Ersätt med visade värden).
Persist layer metadata: säkerställer att alla lager metadata som finns i källlagret kopieras och lagras:
i det nyskapade lagret, om utdata är i GeoPackage-format
som en
.qmd
-fil tillsammans med utdatalagret, för andra format. Observera att filbaserade format som stöder mer än en dataset (t.ex. SpatiaLite, DXF, …) kan ha ett oavsiktligt beteende.
Symbology export: kan användas främst för DXF-export och för alla filformat som hanterar OGR-funktionsstilar (se anmärkning nedan) som DXF-, KML-, tab-filformat:
Ingen symbologi: standardstil för den applikation som läser data
Feature symbology: spara stil med OGR Feature Styles (se anmärkning nedan)
Symbollagersymbologi: spara med OGR Feature Styles (se anmärkning nedan) men exportera samma geometri flera gånger om det finns flera symbolskiktssymboler som används
Ett Scale-värde kan tillämpas på de senaste alternativen
Observera
OGR Feature Styles är ett sätt att lagra stil direkt i data som ett dolt attribut. Endast vissa format kan hantera den här typen av information. KML-, DXF- och TAB-filformat är sådana format. För avancerade detaljer kan du läsa dokumentet OGR Feature Styles specification.
Geometry: du kan konfigurera geometrifunktionerna för utdatalagret
geometry type: behåller den ursprungliga geometrin för objekten när den är inställd på Automatic, annars tas den bort eller ersätts med valfri typ. Du kan lägga till en tom geometrikolumn i en attributtabell och ta bort geometrikolumnen i ett spatialt lager.
Force multi-type: tvingar fram skapandet av multigeometriska funktioner i lagret.
Inkludera z-dimension till geometrier.
Tips
Genom att åsidosätta lagrets geometrityp kan du t.ex. spara en geometrilös tabell (t.ex. .csv
-fil) i en shapefil MED valfri geometrityp (punkt, linje, polygon), så att geometrier sedan kan läggas till manuellt i raderna med verktyget Add Part.
Datasource Options, Layer Options eller Custom Options som gör att du kan konfigurera avancerade parametrar beroende på utdataformat. Vissa beskrivs i Utforska dataformat och fält men för fullständiga detaljer, se dokumentationen för drivrutinen GDAL. Varje filformat har sina egna anpassade parametrar, t.ex. för formatet
GeoJSON
, se dokumentationen för GDAL GeoJSON.

Fig. 11.30 Spara som ett nytt vektorlager
När du sparar ett vektorlager i en befintlig fil kan användaren, beroende på kapaciteten i utdataformatet (Geopackage, SpatiaLite, FileGDB …), bestämma om den ska:
skriva över hela filen
skriva över endast mållagret (lagernamnet är konfigurerbart)
lägga till funktioner till det befintliga mållagret
lägg till funktioner, lägg till nya fält om det finns några.
För format som ESRI Shapefile, MapInfo .tab är det också möjligt att lägga till funktioner.
11.2.2.4. Specifika parametrar för punktmoln
På samma sätt som raster- och vektorlager kan punktmolnslager sparas i ett annat format och/eller omprojiceras till ett annat koordinatreferenssystem (CRS). Detta gör att du kan exportera ett punktmolnslager till vektor- eller punktmolnsformat. Format som stöds för närvarande är: Temporary scratch (minneslager), GeoPackage, ESRI Shapefile, DXF och LAS/LAZ punktmoln. Förutom de vanliga parametrarna som anges ovan innehåller export av punktmolnslager följande alternativ:
Filtrera efter polygonlager: Gör att du kan filtrera punktmolnsdata baserat på ett polygonlager.
Elevation Range: Möjliggör filtrering av punktmolnsdata baserat på ett specificerat Z-intervall.
Begränsa antalet punkter: Ger ett alternativ för att begränsa antalet punkter som exporteras från punktmolnslagret.

Fig. 11.31 Spara ett punktmolnslager som ett nytt lager
11.2.3. Skapa nya DXF-filer
Förutom dialogen Save As… som innehåller alternativ för att exportera ett enskilt lager till ett annat format, inklusive *.DXF
, innehåller QGIS ett annat verktyg för att exportera flera lager som ett enda DXF-lager. Det finns tillgängligt i menyn .

Fig. 11.32 Exportera ett projekt till DXF-dialogrutan
I dialogrutan DXF Export:
Ange destinationsfilen.
Välj symbologiläge och skala (se anmärkningen OGR Feature Styles), om tillämpligt.
Välj data Encoding.
Välj den CRS som ska tillämpas: de valda lagren kommer att reprojiceras till den angivna CRS.
Välj de lager som ska ingå i DXF-filerna antingen genom att markera dem i tabellwidgeten eller genom att automatiskt välja dem från ett befintligt map theme. Knapparna Markera allt och Avmarkera allt kan hjälpa till att snabbt ställa in vilka data som ska exporteras.
För varje lager kan du:
Åsidosätt namnet på utdatalagret utan att ändra det ursprungliga projektlagret. Klicka på Layer-namnet i dialogrutan och skriv det utdatanamn som ska användas.
Attribut för utmatningslager: Välj om du vill exportera alla funktioner i ett enda DXF-lager eller förlita dig på ett fält vars värden används för att dela upp funktionerna i lager i DXF-utdata. I det senare fallet kommer varje lager att få sitt namn från motsvarande fältvärde.
Tillåt datadefinierade symbolblock:
Maximalt antal symbolblock: skapar symbolblock upp till den angivna gränsen och börjar med de block som innehåller flest referenser. De andra symbolerna skrivs som de är.
-1
betyder ingen begränsning.
Alternativt kan du också välja att:
Använd lagrets titel som namn om det är inställt istället för själva lagernamnet: titeln hämtas från lagrets egenskaper metadata eller server;
Exportera funktioner som skär den aktuella kartutbredningen;
Tvinga fram 2d-utdata (t.ex. för att stödja polylinjebredd);
Exportera linjer med noll bredd: alla linjer exporteras med minimal bredd
0
(hårlinje) om den är aktiverad. Detta hjälper till att hålla linjerna minimala i filen oavsett zoomnivå, och kan vara praktiskt för att göra ytterligare CAD-redigering med den exporterade dxf, särskilt om det finns många funktioner bredvid varandra på kartan.
Observera
Prioriteringen för att definiera namnet på utdatalagret är följande:
Fältvärdet från Output layer attribute
Det åsidosatta namnet i Layer-kolumnen
Alternativet Använd lagrets titel som namn om det är inställt
Lagrets namn
Aktuella inställningar som definieras i dialogrutan DXF Export kan lagras i en XML-fil så att de kan återanvändas i andra sessioner. För detta har kombinationsrutan Settings två alternativ: Load Settings from File… och Save Settings to File….
11.2.4. Skapa nya lager från urklipp
Funktioner som finns i urklippet kan klistras in i ett nytt lager. Detta gör du genom att välja några funktioner, kopiera dem till urklippet och sedan klistra in dem i ett nytt lager med
och välja:Nytt vektorlager…: dialogrutan Spara vektorlager som… visas (se Skapa nya lager från ett befintligt lager för parametrar)
eller Temporary Scratch Layer…: du måste ange ett namn för lagret
Ett nytt lager, fyllt med valda funktioner och deras attribut, skapas (och läggs till i kartbilden).
Observera
Det är möjligt att skapa lager från urklipp med objekt som markerats och kopierats i QGIS samt objekt från ett annat program, så länge deras geometrier definieras med hjälp av välkänd text (WKT).
11.2.5. Skapa virtuella lager
Ett virtuellt lager är en speciell typ av vektorlager. Det gör att du kan definiera ett lager som resultatet av en SQL-fråga som involverar ett valfritt antal andra vektorlager som QGIS kan öppna. Virtuella lager innehåller inte data i sig utan kan ses som vyer.
För att skapa ett virtuellt lager öppnar du dialogrutan för skapande av virtuella lager:
aktivera fliken
Lägg till virtuellt lager i dialogrutan Datakällshanterare;
eller med hjälp av dialogrutan DB Manager.
I dialogrutan kan du ange en Layer name och en SQL Query. Frågan kan använda namnet (eller id) på laddade vektorlager som tabeller, samt deras fältnamn som kolumner.
Om du till exempel har ett lager som heter airports
kan du skapa ett nytt virtuellt lager som heter public_airports
med en SQL-fråga som:
SELECT *
FROM airports
WHERE USE = "Civilian/Public"
SQL-frågan kommer att köras, oavsett den underliggande leverantören av lagret airports
, även om denna leverantör inte direkt stöder SQL-frågor.

Fig. 11.33 Skapa dialog för virtuella lager
Joins och komplexa frågor kan också skapas, till exempel för att koppla samman flygplatser och landinformation:
SELECT airports.*, country.population
FROM airports
JOIN country
ON airports.country = country.name
Observera
Det är också möjligt att skapa virtuella lager med hjälp av SQL-fönstret i DB Manager Plugin.
11.2.5.1. Inbäddning av lager för användning i frågor
Förutom de vektorlager som finns tillgängliga i kartbilden kan användaren lägga till lager i listan Embedded layers, som kan användas i frågor utan att de behöver visas i kartbilden eller panelen Layers.
För att bädda in ett lager klickar du på Lägg till och anger Lokalt namn, Datakälla, Kodning och sökvägen till Källa.
Med knappen Import kan du lägga till lager i kartbilden i listan Inbäddade lager. Dessa lager kan sedan tas bort från panelen Lager utan att befintliga frågor bryts.
11.2.5.2. Frågespråk som stöds
Den underliggande motorn använder SQLite och SpatiaLite för att fungera.
Det innebär att du kan använda all SQL som din lokala installation av SQLite förstår.
Funktioner från SQLite och spatiala funktioner från SpatiaLite kan också användas i en virtuell lagerfråga. Om du t.ex. vill skapa ett punktlager av ett lager med enbart attribut kan du göra det med en fråga som liknar:
SELECT id, MakePoint(x, y, 4326) as geometry
FROM coordinates
Funktioner i QGIS-uttrycken kan också användas i en virtuell lagerfråga.
För att referera till geometrikolumnen i ett lager, använd namnet geometry
.
I motsats till en ren SQL-fråga måste alla fält i en virtuell lagerfråga namnges. Glöm inte att använda nyckelordet as
för att namnge dina kolumner om de är resultatet av en beräkning eller ett funktionsanrop.
11.2.5.3. Problem med prestanda
Med standardparametrar kommer den virtuella lagermotorn att göra sitt bästa för att upptäcka typen av de olika kolumnerna i frågan, inklusive typen av geometrikolumn om en sådan finns.
Detta görs genom att introspektera frågan när det är möjligt eller genom att hämta den första raden i frågan (LIMIT 1) som en sista utväg. Att hämta den första raden i resultatet bara för att skapa lagret kan vara oönskat av prestandaskäl.
Parametrar för dialogrutan för skapande:
Unique identifier column: anger ett fält i frågan som representerar unika heltalsvärden som QGIS kan använda som radidentifierare. Som standard används ett automatiskt ökande heltalsvärde. Om du definierar en kolumn för unika identifierare går det snabbare att välja rader efter id.
Ingen geometri: tvingar det virtuella lagret att ignorera alla geometriska fält. Det resulterande lagret är ett lager med enbart attribut.
Geometry Column: anger namnet på geometrikolumnen.
Geometry Type: anger geometrins typ.
Geometry CRS: anger det virtuella lagrets referenssystem för koordinater.
11.2.5.4. Särskilda kommentarer
Motorn för det virtuella lagret försöker fastställa typen för varje kolumn i frågan. Om det misslyckas hämtas den första raden i frågan för att fastställa kolumntyperna.
Typen av en viss kolumn kan anges direkt i frågan med hjälp av några speciella kommentarer.
Syntaxen är följande: /*:typ*/
. Den måste placeras precis efter namnet på en kolumn. type
kan vara antingen int
för heltal, real
för flyttal eller text
.
Till exempel:
SELECT id+1 as nid /*:int*/
FROM table
Geometrikolumnens typ och koordinatreferenssystem kan också ställas in med hjälp av särskilda kommentarer med följande syntax /*:gtype:srid*/
där gtype
är geometritypen (point
, linestring
, polygon
, multipoint
, multilinestring
eller multipolygon
) och srid
ett heltal som representerar EPSG-koden för ett koordinatreferenssystem.
11.2.5.5. Användning av index
När du begär ett lager via ett virtuellt lager kommer källlagrets index att användas på följande sätt:
om ett
=
-predikat används på lagrets primärnyckelkolumn, kommer den underliggande dataleverantören att tillfrågas om ett visst id (FilterFid)för alla andra predikat (
>
,<=
,!=
, etc.) eller på en kolumn utan primärnyckel, kommer en begäran byggd från ett uttryck att användas för att begära den underliggande vektordataleverantören. Det betyder att index kan användas på databasleverantörer om de finns.
Det finns en specifik syntax för att hantera spatiala predikat i förfrågningar och utlöser användningen av ett spatialt index: en dold kolumn med namnet _search_frame_
finns för varje virtuellt lager. Den här kolumnen kan jämföras med en bounding box för att visa att den är lika. Ett exempel:
SELECT *
FROM vtab
WHERE _search_frame_=BuildMbr(-2.10,49.38,-1.3,49.99,4326)
Spatiala binära predikat som ST_Intersects
snabbas upp avsevärt när de används tillsammans med denna spatiala indexsyntax.