14.2. Creare Layer

I layer possono essere creati in molti modi, tra cui:

  • vuoti da zero

  • layer da layer esistenti

  • layer dagli appunti

  • layer come risultato di una query di tipo SQL basata su uno o più layer (virtual layers)

QGIS fornisce anche strumenti per importare/esportare da/a diversi formati.

14.2.1. Creare nuovi layer Vettore

QGIS permette di creare nuovi layer in diversi formati. Fornisce strumenti per la creazione di layer GeoPackage, Shapefile, SpatiaLite, formato GPX e Layer Temporaneo (anche detto layer in memoria). La creazione di un new GRASS layer è supportata dal plugin GRASS.

14.2.1.1. Creare un nuovo vettore GeoPackage

Per creare un nuovo layer GeoPackage, premi il pulsante newGeoPackageLayer Nuovo Layer GeoPackage… nel menu Layer ► Crea Vettore ► o dalla barra degli strumenti Barra degli Strumenti per la Gestione della Sorgente Dati. La finestra di dialogo Nuova Layer GeoPackage verrà visualizzata come mostrato in Fig. 14.17.

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

Fig. 14.17 Finestra di dialogo creazione Nuovo vettore GeoPackage

  1. Il primo passo è indicare la posizione del file del database. Questo può essere fatto premendo il pulsante a destra del campo Database e selezionare un file GeoPackage esistente o crearne uno nuovo. QGIS aggiungerà automaticamente la giusta estensione al nome fornito.

  2. Dare un nome al nuovo layer / tabella (Nome tabella)

  3. Definisci il Tipo di geometria. Se non è un layer senza geometria, puoi anche specificare Includi dimensione Z e/o Includi valori M.

  4. Specifica il sistema di riferimento delle coordinate usando il pulsante setProjection

Per aggiungere campi al layer che stai creando:

  1. Inserisci il Nome del campo

  2. Seleziona il Tipo. I tipi supportati sono Dati testo, Numero intero (sia intero che intero64), Numero decimale, Data e Data e Ora, Binario (BLOB) e Booleano.

  3. A seconda del formato di dati selezionato, inserisci la Lunghezza massima dei valori.

  4. Clicca sul pulsante newAttribute Aggiungi a Lista Campi

  5. Ripeti i passi precedenti per ogni campo che vuoi aggiungere

  6. Una volta che sei soddisfatto degli attributi, clicca su OK. QGIS aggiungerà il nuovo layer alla legenda, e potrai modificarlo come descritto nella sezione Modifica di un layer esistente.

Per impostazione predefinita, quando si crea un layer GeoPackage, QGIS genera una colonna Colonna id elemento chiamata fid che agisce come chiave primaria del layer. Il nome può essere cambiato. Il campo geometria, se disponibile, è chiamato geomety, e puoi scegliere Crea un indice spaziale su di esso. Queste opzioni possono essere trovate sotto Opzioni Avanzate insieme al Identificatore Layer (nome breve e leggibile del layer) e alla Descrizione Layer.

Un’ulteriore gestione dei layer di GeoPackage può essere fatta con il DB Manager.

14.2.1.2. Creare un nuovo layer Shapefile

Per creare un nuovo layer in formato ESRI Shapefile, premi il pulsante newVectorLayer Nuovo Layer Shapefile… nel menu Layer ► Crea Vettore ► o dalla barra degli strumenti Barra degli Strumenti per la Gestione della Sorgente Dati. Viene visualizzata la finestra di dialogo Nuovo Layer Shapefile come mostrato in Fig. 14.18.

  1. Fornisci un percorso e un nome di file usando il pulsante accanto a Nome del file. QGIS aggiungerà automaticamente la giusta estensione al nome fornito.

  2. Poi, indica la Codifica file dei dati

  3. Scegli il Tipo di geometria del layer: Nessuna geometria ( si ottiene un file in formato .DBF), punto, multipunto, linea o poligono

  4. Specifica se la geometria deve avere dimensioni aggiuntive: Nessuna, Z (+ valori M) o valori M.

  5. Specifica il sistema di riferimento delle coordinate usando il pulsante setProjection

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

Fig. 14.18 Finestra di dialogo creazione nuovo Layer Shapefile

Per aggiungere campi al layer che stai creando:

  1. Inserisci il Nome del campo

  2. Seleziona il Tipo dei dati. Sono supportati solo gli attributi Numero Decimale, Numero Intero, Dati testo e Data.

  3. A seconda del formato di dati selezionato, inserisci Lunghezza e Precisione.

  4. Clicca sul pulsante newAttribute Aggiungi a Lista Campi

  5. Ripeti i passi precedenti per ogni campo che vuoi aggiungere

  6. Una volta che sei soddisfatto degli attributi, clicca su OK. QGIS aggiungerà il nuovo layer alla legenda, e potrai modificarlo come descritto nella sezione Modifica di un layer esistente.

Per impostazione predefinita, viene aggiunta una prima colonna numero intero id, ma può essere rimossa.

14.2.1.3. Creare un nuovo layer SpatiaLite

Per creare un nuovo layer SpatiaLite, premi il pulsante newSpatiaLiteLayer Nuovo Layer SpatiaLite… nel menu Layer ► Crea Layer ► o dalla barra degli strumenti Barra degli Strumenti per la Gestione della Sorgente Dati. La finestra di dialogo Nuovo Layer SpatiaLite verrà visualizzata come mostrato in Fig. 14.19.

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

Fig. 14.19 Finestra di dialogo creazione Nuovo layer SpatiaLite

  1. Il primo passo è indicare la posizione del file del database. Questo può essere fatto premendo il pulsante a destra del campo Database e selezionare un file SpatiaLite esistente o crearne uno nuovo. QGIS aggiungerà automaticamente la giusta estensione al nome fornito.

  2. Fornisci un nome (Nome Layer) per il nuovo layer

  3. Definisci il Tipo di geometria. Se non è un layer senza geometria, puoi anche specificare Includi dimensione Z e/o Includi valori M.

  4. Specifica il sistema di riferimento delle coordinate usando il pulsante setProjection.

Per aggiungere campi al layer che stai creando:

  1. Inserisci il Nome del campo

  2. Seleziona il Tipo di dati. I tipi supportati sono Dati Testo, Numero intero, Numero decimale, Data e Data ora.

  3. Clicca sul pulsante newAttribute Aggiungi a Lista Campi

  4. Ripeti i passi precedenti per ogni campo che vuoi aggiungere

  5. Una volta che sei soddisfatto degli attributi, clicca su OK. QGIS aggiungerà il nuovo layer alla legenda, e potrai modificarlo come descritto nella sezione Modifica di un layer esistente.

Se vuoi puoi selezionare checkbox Crea una chiave primaria autoincrementale nella sezione Opzioni Avanzate. Puoi anche rinominare la Colonna Geometria (geometry per impostazione predefinita).

Un’ulteriore gestione dei layer di SpatiaLite può essere fatta con DB Manager.

14.2.1.4. Creare un nuovo layer Mesh

Per creare un nuovo layer mesh, premi il pulsante Nuovo Layer Mesh… nel menu Layer ► Crea Vettore ► o dalla barra degli strumenti Gestione della Sorgente Dati. La finestra di dialogo Nuovo Layer Mesh verrà visualizzata come mostrato in Fig. 14.20.

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

Fig. 14.20 Finestra di dialogo creazione Nuovo layer Mesh

  1. Il primo passo consiste nell’indicare la posizione del file mesh. Questo può essere fatto premendo il pulsante a destra del campo Nome file e selezionando un file mesh esistente o creandone uno nuovo.

  2. Fornisci un nome (Nome layer), cioè il nome con cui il layer viene visualizzato nel pannello Layer.

  3. Seleziona il Formato file: i formati di file mesh attualmente supportati sono 2DM Mesh File (*.2dm), Selafin File (*.slf) e UGRID (*.nc).

  4. Indica il Coordinate Reference System 1 da assegnare al dataset.

  5. I passaggi sopra descritti generano un layer vuoto su cui puoi successivamente digitalizzare i vertici e aggiungere gruppi di dati. Tuttavia, è anche possibile inizializzare il layer con un layer di mesh esistente, cioè popolando il nuovo layer con vertici o facce di un altro. Per farlo:

    1. Seleziona checkbox Inizializza la Maglia Usando

    2. e seleziona una Mesh del progetto corrente o Mesh da un file. Le informazioni sul file di mesh selezionato vengono visualizzate per il controllo.

    Nota: solo la cornice del layer mesh viene trasferita al nuovo layer; i relativi dati non vengono copiati.

14.2.1.5. Creare un nuovo layer GPX

Per creare un nuovo file GPX:

  1. Seleziona Crea Vettore ► createGPX :menuselection: Nuovo Layer GPX… dal menu Vettore.

  2. Nella finestra di dialogo, scegli dove salvare il nuovo file, assegnagli un nome e premi Salva.

  3. Tre nuovi layer vengono aggiunti al pannello Layer:

    • un layer punto per digitalizzare i luoghi (waypoints) con campi per memorizzare il nome, l’elevazione, il commento, la descrizione, la fonte, l’url e il nome dell’url

    • un vettore lineare per digitalizzare sequenze di luoghi che compongono un percorso pianificato (route) con campi per memorizzare il nome, il simbolo, il numero, il commento, la descrizione, la fonte, l’URL, il nome dell’URL

    • e un vettore lineare per tracciare il movimento del ricevitore nel tempo (tracks) con campi per memorizzare il nome, il simbolo, il numero, il commento, la descrizione, la fonte, l’url, il nome dell’url.

  4. Puoi ora modificare uno qualsiasi di essi come descritto nella sezione Modifica di un layer esistente.

14.2.1.6. Creare un nuovo Vettore Temporaneo

I Vettori Temporanei sono layer in-memoria, il che significa che non vengono salvati su disco e verranno eliminati quando QGIS viene chiuso. Possono essere utili per memorizzare gli elementi di cui hai bisogno temporaneamente o come layer intermedi durante le operazioni di geoprocessing.

Per creare un nuovo layer Vettore Temporaneo, scegli la voce createMemory Nuovo Layer Temporaneo… nel menu Layer ► Crea Vettore ► o nella barra degli strumenti Barra degli Strumenti per la Gestione della Sorgente Dati. La finestra di dialogo Nuovo Layer Temporaneo verrà visualizzata come mostrato in Fig. 14.21. Poi:

  1. Fornisci il Nome Layer.

  2. Seleziona il Tipo di geometria. Qui puoi creare un:

    • layer di tipo Nessuna geometria, utilizzato come semplice tabella,

    • layer Punto o Multi punto,

    • layer LineString/CurvaComposta o MultiLineString/MultiCurve,

    • layer Poligono/CurvePolygon o MultiPoligono/MultiSurface.

  3. Per tipologie geometria, specifica le dimensioni del dataset: controlla se scegliere Includi dimensione Z e/o Includi valori M.

  4. Specifica il sistema di riferimento delle coordinate usando il pulsante setProjection.

  5. Aggiungi campi al layer. Nota che a differenza di molti formati, i layer temporanei possono essere creati senza alcun campo. Questo passo è quindi opzionale.

    1. Inserisci il Nome del campo

    2. Seleziona il Tipo dei dati: sono supportati Testo, Numero Intero, Numero Decimale, Booleano, Data, Ora, Data e Ora e Binario (BLOB).

    3. A seconda del formato di dati selezionato, inserisci Lunghezza e Precisione.

    4. Clicca sul pulsante newAttribute Aggiungi a Lista Campi

    5. Ripeti i passi precedenti per ogni campo che vuoi aggiungere

  6. Una volta che sei soddisfatto delle impostazioni, clicca su OK. QGIS aggiungerà il nuovo layer al pannello Layer, e potrai modificarlo come descritto nella sezione Modifica di un layer esistente.

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

Fig. 14.21 Finestra di dialogo creazione nuovo vettore temporaneo

Puoi anche creare layer temporanei prepopolati usando ad esempio gli appunti (vedi Creare nuovi layer dagli appunti) o come risultato di un Processing algorithm.

Suggerimento

Salvataggio permanente di un vettore temporaneo su disco

Per evitare la perdita di dati quando si chiude un progetto con layer temporanei, puoi salvare questi layer in qualsiasi formato vettoriale supportato da QGIS:

  • cliccando sull’icona indicatorMemory accanto al layer;

  • selezionando Rendi permanente nel menu contestuale del layer;

  • usando la voce Esporta ► dal menu contestuale o il menu Layer ► Salva con nome….

Ciascuno di questi comandi apre la finestra di dialogo Salva Elementi Come… descritta nella sezione Creare nuovi layer da layer esistente e il file salvato sostituisce quello temporaneo nel pannello Layer.

14.2.2. Creare nuovi layer da layer esistente

Sia i layer raster che vettoriali possono essere salvati in un formato diverso e/o riproiettati in un diverso sistema di riferimento di coordinate (SR) usando il menu Layer ► Salva con nome…. o facendo clic destro sul layer nel pannello Layer e selezionando:

  • Esporta ► Salva con Nome… per layer raster

  • Esporta ► Salva Elementi Come… o Esporta ► Salva Elementi Selezionati Come… per vettori.

  • Trascina il layer dall’albero dei layer alla voce PostGIS nel Pannello Browser. Nota che devi avere una connessione PostGIS nel Pannello Browser.

14.2.2.1. Parametri comuni

La finestra di dialogo Salva Layer come…. mostra diversi parametri per cambiare il risultato con il salvataggio del layer. Tra i parametri comuni per raster e vettori ci sono:

  • Nome file: la posizione del file sul disco. Può riferirsi al layer risultato o a un contenitore che memorizza il layer (per esempio formati del tipo database come GeoPackage, SpatiaLite o Open Document Spreadsheets).

  • SR: può essere cambiato per riproiettare i dati.

  • Estensione: limita l’estensione dell’input da esportare utilizzando il widget extent_selector.

  • Aggiungi il file salvato sulla mappa per aggiungere il nuovo layer alla mappa

Tuttavia, alcuni parametri sono specifici per i formati raster e vettoriali

14.2.2.2. Parametri specifici per i Raster

A seconda del formato di esportazione, alcune di queste opzioni potrebbero non essere disponibili:

  • Modalità uscita (può essere Dati grezzi o Immagine visualizzata)

  • Formato: esportazioni in qualsiasi formato raster che GDAL può scrivere, come GeoTiff, GeoPackage, MBTiles, Geospatial PDF, SAGA GIS Binary GIS Grid, Intergraph Raster, ESRI .hdr Labelled…..

  • Risoluzione

  • Opzioni di creazione: utilizzare le opzioni avanzate (compressione file, dimensioni dei blocchi, colorimetria….) quando si generano file, o da predefined create profiles relativi al formato di output o impostando ciascun parametro.

  • Pyramids creation

  • Tasselli VRT nel caso in cui hai scelto checkbox Crea VRT

  • Valori nulli

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

Fig. 14.22 Salvare come un nuovo layer raster

14.2.2.3. Parametri specifici per i Vettori

A seconda del formato di esportazione, alcune di queste opzioni possono essere disponibili:

  • Formato: esporta in un qualsiasi formato vettoriale in cui GDAL può scrivere, come GeoPackage, GML, ESRI Shapefile, AutoCAD DXF, ESRI FileGDB, Mapinfo TAB o MIF, SpatiaLite, CSV, KML, ODS, …

  • Nome Layer: disponibile quando il Nome file si riferisce a un formato tipo contenitore, questa voce rappresenta il layer di uscita.

  • Codifica

  • Salva solo le geometrie selezionate

  • Seleziona i campi da esportare e le loro opzioni di esportazione. Nel caso in cui imposti i comportamenti dei campi con alcuni Edit widgets 1 ad esempio value map, puoi mantenere i valori visualizzati nel layer scegliendo checkbox Sostituisci tutti i valori grezzi selezionati dai valori mostrati.

  • Mantieni i metadati del layer: assicura che qualsiasi layer metadati presente nel layer di origine venga copiato e memorizzato:

    • nel layer appena creato, se l’output è in formato GeoPackage

    • come file .qmd insieme al layer di output, per altri formati. Nota che i formati basati su file che supportano più di un insieme di dati (ad esempio SpatiaLite, DXF, …) possono avere un comportamento non previsto.

  • Esporta simbologia: opzione che puoi utilizzare principalmente per l’esportazione del formato DXF e per tutti i formati di file che gestiscono le tipologie di file OGR (vedi nota di seguito) come i formati DXF, KML, i formati tabelle:

    • Nessuna simbologia: stile di default dell’applicazione che legge i dati

    • Simbologia geometrie: salva lo stile utilizzando gli stili OGR (vedi la nota di seguito)

    • Simbologia simboli vettore: salva con gli stili OGR (vedi nota di seguito) ma esporta la stessa geometria più volte se sono utilizzati più simboli

    • Un valore di Scala può essere applicato alle ultime opzioni

Nota

OGR Feature Styles sono un modo per memorizzare lo stile direttamente nei dati come attributo nascosto. Solo alcuni formati possono gestire questo tipo di informazioni. I formati di file KML, DXF e TAB sono tali. Per dettagli avanzati, puoi leggere il documento OGR Feature Styles specification.

  • Geometria: puoi definire le caratteristiche geometriche del layer in output

    • Tipo di geometria: mantiene la geometria originale degli elementi quando è impostata su Automatico, altrimenti la rimuove o la sostituisce con qualsiasi tipo. Si può aggiungere una colonna geometria vuota ad una tabella di attributi e rimuovere la colonna geometria di un layer spaziale.

    • Forza multi-tipo: forza la creazione di features multi-geometry nel layer

    • Includi dimensione z alle geometrie.

Suggerimento

Modificare il tipo di geometria di un layer consente di eseguire cose come salvare una tabella senza geometrie (ad esempio file .csv) in uno shapefile con qualsiasi tipo di geometria (punto, linee, poligono), in modo che le geometrie possano essere aggiunte manualmente a righe con lo strumento addPart Aggiungi parte.

  • Sorgente Dati, Opzioni Layer o Opzioni personalizzate che ti permettono di configurare parametri avanzati a seconda del formato in uscita. Alcuni sono descritti in Esplorare Formati Dati e Campi ma per tutti i dettagli, vedi la documentazione del driver GDAL. Ogni formato di file ha i suoi parametri personalizzati, ad esempio per il formato GeoJSON dai un’occhiata alla documentazione di GDAL GeoJSON.

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

Fig. 14.23 Salvare come un nuovo layer vettoriale

Quando si salva un layer vettoriale in un file esistente, a seconda delle capacità del formato di output (Geopackage, SpatiaLite, FileGDB …), l’utente può decidere se:

  • sovrascrivere l’intero file

  • sovrascrivere solo il layer di destinazione (il nome del layer è configurabile)

  • aggiungere geometrie ad un layer esistente

  • aggiungere geometrie, aggiungere nuovi campi se ce ne sono.

Sono disponibili opzioni per aggiungere geometrie ai formati come ESRI Shapefile, MapInfo .tab,.

14.2.3. Creazione di nuovi file DXF

Oltre alla finestra di dialogo Salva Come… che fornisce opzioni per esportare un singolo layer in un altro formato, incluso *.DXF, QGIS fornisce un altro strumento per esportare più layer come un singolo layer DXF. E” accessibile nel menu Progetto ► Importa/Esporta ► Esporta Progetto in DXF….

Nella finestra di dialogo Esportazione DXF:

  1. Fornisci il file di destinazione.

  2. Scegli la modalità e la scala della simbologia (vedi la nota OGR Feature Styles), se applicabile.

  3. Seleziona la Codifica dei dati.

  4. Seleziona il SR da applicare: i layer selezionati verranno riproiettati nel SR indicato.

  5. Seleziona i layer da includere nei file DXF spuntandoli nel widget della tabella o scegliendoli automaticamente da un map theme esistente. I pulsanti Seleziona Tutto e Deseleziona Tutto possono aiutare a impostare rapidamente i dati da esportare.

    Per ogni layer, puoi scegliere se esportare tutte gli elementi in un singolo layer DXF o fare affidamento su un campo i cui valori sono usati per dividere gli elementi in layer nel DXF in uscita.

Opzionalmente puoi anche scegliere di:

  • checkbox Se impostato usa il titolo del layer come nome invece del nome del layer stesso;

  • checkbox Esporta gli elementi che intersecano l’attuale estensione della mappa;

  • unchecked Forza risultato 2D (ad esempio per supportare la larghezza della polilinea);

  • checkbox Esporta le etichette come MTEXT o elementi TEXT.

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

Fig. 14.24 Esportazione di un progetto nella finestra di dialogo DXF

14.2.4. Creare nuovi layer dagli appunti

Le geometrie che si trovano negli appunti possono essere incollate in un nuovo layer. Seleziona alcune geometrie e poi copiale in un nuovo layer usando Modifica ► Incolla geometrie come ► e scegliendo:

  • Nuovo Vettore…: appare la finestra di dialogo Salva Vettore Come… (per i parametri vedi Creare nuovi layer da layer esistente)

  • oppure Layer Temporaneo…: devi fornire un nome per il layer

Viene creato un nuovo layer, popolato con gli elementi selezionati e relativi attributi (e aggiunto alla mappa).

Nota

La creazione di layer dagli appunti è possibile con elementi selezionati e copiati all’interno di QGIS, nonché elementi di un’altra applicazione, a condizione che siano definiti utilizzando il formato stringa well-known text (WKT).

14.2.5. Creazione di layer virtuali

I layer virtuali sono una tipologia speciale di layer vettoriale. Permettono di definire un layer come il risultato di una query SQL che coinvolge un qualsiasi numero di altri layer vettoriali che QGIS è in grado di aprire. I layer virtuali non hanno dati propri e possono essere considerati come viste.

Per creare un layer virtuale, apri la finestra di dialogo per la creazione di un layer virtuale:

  • scegliendo la voce addVirtualLayer Aggiungi/Modifica Layer Virtuale nel menu Layer ► Aggiungi Layer ►;

  • abilitando la scheda addVirtualLayer Nuovo Layer Virtuale nella finestra di dialogo Barra degli Strumenti per la Gestione della Sorgente Dati;

  • o usando la finestra di dialogo DB Manager….

La finestra di dialogo ti consente di specificare un Nome vettore e una Interrogazione SQL. Questa interrogazione può utilizzare il nome (o id) dei vettori esistenti, così come i nomi dei campi del layer.

Ad esempio, se hai un layer chiamato airports, puoi creare un nuovo layer virtuale da denominare public_airports con una query SQL del tipo:

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

La query SQL verrà eseguita, qualunque sia la struttura di base del vettore airports e anche se questa fonte dati non supporta direttamente le query SQL.

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

Fig. 14.25 Finestra di dialogo creare layer virtuali

È inoltre possibile creare join e query complesse, ad esempio, per unire aeroporti e informazioni sui paesi:

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

Nota

Layer virtuali possono essere creati anche usando la finestra di dialogo SQL di Plugin DB Manager.

14.2.5.1. Layer nidificati da usare nelle query

Oltre ai layer vettoriali disponibili nella mappa, l’utente può aggiungere layer alla lista Layer nidificati, che possono essere usati nelle query senza bisogno di averli visualizzati nella mappa o nel pannello Layer.

Per incorporare un layer, fai clic su Aggiungi e inserisci Nome locale, Sorgente dati, Codifica e il percorso della Sorgente dati.

Il pulsante Importa permette di aggiungere i layer nella mappa nella lista dei layer incorporati. Questi layer possono poi essere rimossi dal pannello Layer senza interrompere le query esistenti.

14.2.5.2. Linguaggi query supportati

Il motore incorporato utilizza SQLite e SpatiaLite per operare.

Ciò significa che puoi utilizzare tutto l’SQL che l’installazione locale di SQLite comprende.

Funzioni di SQLite e funzioni spaziali di SpatiaLite possono anche essere utilizzate in una query di layer virtuale. Ad esempio, la creazione di un layer di punti da un layer di solo attributo può essere fatto con una query simile a:

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

Functions of QGIS expressions possono essere utilizzate anche in una query di layer virtuale.

Per fare riferimento alla colonna geometrica di un layer, utilizzare il nome geometry.

Al contrario di una query SQL pura, tutti i campi di una query di un layer virtuale devono avere un nome. Non dimenticare di usare la parola chiave as per nominare le tue colonne se sono il risultato di un calcolo o di una chiamata di funzione.

14.2.5.3. Problemi relativi alle prestazioni

Con i parametri predefiniti, il motore del layer virtuale farà del suo meglio per rilevare il tipo delle diverse colonne della query, incluso il tipo della colonna geometria se presente.

Questo viene fatto analizzando la query quando possibile o recuperando la prima riga della query (LIMIT 1) come ultima risorsa. Recuperare la prima riga del risultato solo per creare il layer può essere indesiderabile per ragioni di prestazioni.

La finestra di dialogo per la creazione dei parametri:

  • Colonna identificativa univoca: specifica un campo della query che rappresenta valori interi unici che QGIS può usare come identificatori di riga. Per impostazione predefinita, viene usato un valore intero autoincrementante. La definizione di una colonna identificatore unico velocizza la selezione delle righe per id.

  • Nessuna geometria: forza il layer virtuale a ignorare qualsiasi campo geometria. Il layer risultante sarà solamente un layer tabella attributi.

  • Geometria Colonna: specifica il nome della colonna della geometria.

  • Geometria Tipo: specifica il tipo della geometria.

  • Geometria SR: specifica il sistema di riferimento delle coordinate del layer virtuale.

14.2.5.4. Commenti speciali

L’interprete del layer virtuale tenta di determinare il tipo di ogni colonna della query. Se non riesce, viene eseguita la prima riga della query per determinare i tipi colonna.

Il tipo di una particolare colonna può essere specificato direttamente nella query utilizzando alcuni commenti speciali.

La sintassi è la seguente: /*: type*/. Deve essere inserita subito dopo il nome di una colonna. il tipo può essere int per interi, real per numeri a virgola mobile o text.

Ad esempio:

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

Il tipo e il sistema di riferimento della colonna geometrica può essere impostato anche grazie a speciali commenti con la seguente sintassi /*:gtype: srid*/ dove gtype è il tipo geometrico (point, linestring, polygon, multipoint, multilinestring o multipolygon) e srid un intero che rappresenta il codice EPSG di un sistema di riferimento di coordinate.

14.2.5.5. Uso degli indici

Quando si richiama un layer attraverso un layer virtuale, gli indici dei layer di origine saranno utilizzati nei seguenti modi:

  • se viene usato = nella colonna chiave primaria del layer, al fornitore di dati sottostante verrà richiesto un id particolare (FilterFid)

  • per tutti gli altri predicati (>, <=, !=, etc.) o per richiesta su una colonna senza chiave primaria, verrà utilizzata una richiesta costruita da una espressione per il driver attivo. Ciò significa che gli indici possono essere utilizzati sui drivers di database, se esistono.

Esiste una sintassi specifica per gestire le predicazioni spaziali nelle richieste e innescare l’utilizzo di un indice spaziale: una colonna nascosta denominata _search_frame_ esiste per ogni layer virtuale. Questa colonna può essere paragonata per l’uguaglianza con un riquadro di limitazione. Ad esempio:

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

I predicati binari spaziali come ST_Intersects consentono significative accelerazioni quando utilizzati in combinazione con questa sintassi dell’indice spaziale.