Creare Layer¶
I layer possono essere creati in molti modi, tra cui:
layer vuoti da zero;
layer da layer esistenti;
layer dagli appunti;
come risultato di una query SQL-like basata su uno o più layer: i virtual layer.
QGIS fornisce anche strumenti specifici per importare/esportare diversi formati.
Creare nuovi layer Vettore¶
QGIS ti permette di creare nuovi layer di tipo shapefile, nuovi layer SpatiaLite, nuovi layer GPX e nuovi layer di tipo temporaneo. La creazione di un nuovo layer GRASS è supportata all’interno del plug-in GRASS. (Fai riferimento alla sezione Creare un nuovo layer vettoriale GRASS per ulteriori informazioni sulla creazione di layer vettoriali GRASS).
Creare un nuovo vettore GeoPackage¶
Per creare un nuovo vettore GeoPackage vai su . La finestra di dialogo Nuovo layer GeoPackage verrà visualizzata come mostrato in figure_create_geopackage.
Il primo passo è selezionare un GeoPackage esistente o crearne uno nuovo. Questo puoi farlo premendo il tasto coi puntini di sospensione … alla destra del campo Database. Quindi, assegna un nome per il nuovo layer, definisci il tipo di layer e specifica il sistema di riferimento delle coordinate con Specifica SR.
Per definire una tabella di attributi per il nuovo livello di GeoPackage, aggiungi il nome della colonna degli attributi che desideri creare con il tipo di colonna corrispondente e fai clic sul pulsante Aggiungi a Lista campi. Una volta completati gli attributi, clicca su OK. QGIS aggiungerà automaticamente il nuovo layer alla legenda e potrai modificarlo come descritto nella sezione Modifica di un layer esistente.
Creare un nuovo layer Shapefile¶
Per creare un nuovo layer Shapefile, scegli dal menu oppure selezionalo dalla barra degli strumenti Barra degli strumenti per la gestione della sorgente dati. Viene visualizzata la finestra di dialogo Nuovo Shapefile, come mostrato nella figura figure_create_shapefile. Il primo passo è quello di fornire un percorso e un nome per lo Shapefile. QGIS aggiungerà automaticamente l’estensione .shp
al nome specificato. Quindi, scegli il tipo di vettore (punto, linea o poligono) e le dimensioni opzionali Z o M, così come il SR (sistema di riferimento delle coordinate).
Per completare la creazione del nuovo Shapefile, aggiungi gli attributi desiderati specificando un nome e un tipo per ogni attributo e cliccando sul pulsante Add to Fields List. Una prima colonna “id” viene aggiunta di default ma può essere rimossa, se non lo si desidera. Sono supportati solo Numero decimale , Numero intero , dati testuali e Data . Inoltre, a seconda del tipo di attributo, puoi anche definire la lunghezza e la precisione della nuova colonna attributo. Una volta soddisfatto degli attributi, fai clic su OK. Una volta creato lo Shapefile, verrà aggiunto alla mappa come nuovo layer, e puoi modificarlo nello stesso modo descritto nella sezione Modifica di un layer esistente.
Creare un nuovo layer SpatiaLite¶
Per creare un nuovo layer SpatiaLite scegli dal menu oppure selezionalo dalla barra degli strumenti Data Source Manager. Viene visualizzata la finestra di dialogo Nuovo layer SpatiaLite come mostrato nella figura Figure_create_spatialite.
Il primo passo è quello di selezionare un database SpatiaLite esistente o di creare un nuovo database SpatiaLite. Questo può essere fatto con il pulsante …. alla destra del campo del database. Quindi, aggiungi un nome per il nuovo layer, definisci il tipo di layer e specifica il sistema di riferimento delle coordinate con Seleziona SR. Se vuoi, puoi selezionare Crea una chiave primaria autoincrementale.
Per definire una tabella degli attributi per il nuovo layer SpatiaLite, aggiungi i nomi delle colonne degli attributi che vuoi creare con il tipo di colonna corrispondente e fai clic sul pulsante Aggiungi alla lista campi. Una volta soddisfatto degli attributi, fai clic su OK. QGIS aggiungerà automaticamente il nuovo layer alla legenda, e puoi modificarlo nello stesso modo descritto nella sezione sec_edit_edit_esistente.
Ulteriore gestione dei layer SpatiaLite può essere eseguita con il DB Manager. Vedi Plugin DB Manager.
Creare un nuovo layer GPX¶
Per creare un nuovo file GPX, devi prima aver caricato il plugin GPS. apre la finestra di dialogo Gestione Plugin. Attiva la casella Strumenti GPS.
Quando questo plugin è attivo, scegli dal menu . Nella finestra di dialogo Salva nuovo vettore GPX …. scegli dove salvare il nuovo file e premi Salva. Tre nuovi layer vengono aggiunti al Layers Panel: waypoints
, routes
e tracks
con struttura predefinita.
Creare un nuovo vettore temporaneo¶
I Layer Scratch Temporanei sono layer in memoria, cioè non vengono salvati su disco e verranno cancellati quando QGIS viene chiuso. Possono essere utili per memorizzare gli oggetti di cui si ha temporaneamente bisogno o come layer intermedi durante le operazioni di geoprocessing.
I layer scratch temporanei vuoti e modificabili possono essere definiti usando o Nuovo vettore temporaneo…. dal pulsante Barra degli strumenti per la gestione della sorgente dati. Qui è possibile creare un:
Layer di tipo
No geometry
, utilizzato come semplice tabella,layer
Punto
oMulti punto
,layer
LineString/CompoundCurve
oMultiLineString/MultiCurve
,layer
Polygon/CurvePolygon
oMultiPolygon/MultiSurface
.
Per impostazione predefinita, viene creato un nuovo layer scratch temporaneo senza alcun attributo. Ma si possono anche creare layer scratch temporanei prepopolati usando ad esempio gli appunti (vedi Creare nuovi layer dagli appunti) o come risultato di un algoritmo di elaborazione Processing.
Suggerimento
Salvataggio permanente di un vettore temporaneo su disco
Per evitare la perdita di dati quando chiudi il progetto con layer scratch temporanei, puoi salvare questi layer in qualsiasi formato vettoriale supportato da QGIS:
selezionando Rendi permanente nel menu contestuale del layer;
o come per qualsiasi altro layer vettoriale, usando la voce
dal menu contestuale o dal menu .
Ognuno di questi comandi attiva la finestra di dialogo Salva il vettore come esposta nella sezione Creare nuovi layer da layer esistente e il file salvato sostituisce quello temporaneo nel pannello Layer.
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 e selezionando:
o facendo clic destro sul layer nel pannelloper layer raster
or per layer vettoriali.
Trascina il layer dall’albero layer alla voce PostGIS nel Pannello Browser. Nota che devi avere già una connessione PostGIS nel Pannello Browser.
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
SR: può essere cambiato per riproiettare i dati.
Aggiungi il file salvato sulla mappa per aggiungere il nuovo layer alla mappa
Estensione (i valori possibili sono Estensione del Layer, Estensione della mappa o Estensione definita dall’utente)
Tuttavia, alcuni parametri sono specifici per i formati raster e vettoriali
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.
Piramidi creazione
Valori nulli
Parametri specifici per i Vettori¶
A seconda del formato di esportazione, alcune di queste opzioni sono disponibili o meno:
Formato: le esportazioni in qualsiasi formato raster che GDAL può scrivere, come GeoPackage, ESRI Shapefile, AutoCAD DXF, ESRI FileGDB, Mapinfo TAB or MIF, SpatiaLite, CSV, KML, ODS…
Nome vettore a seconda del formato selezionato
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 ad esempio «valore», puoi mantenere i valori visualizzati nel layer scegliendo Sostituisci tutti i valori grezzi selezionati dai valori mostrati.
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 scelte più recenti.
Nota
Gli Stili di Geometrie OGR sono un modo per memorizzare lo stile direttamente nei dati come un attributo nascosto. Solo alcuni formati possono gestire questo tipo di informazioni. Formati KML, DXF e TAB sono tali formati. Per utenti avanzati, è possibile leggere il documento OGR Feature Styles specification
Geometria: puoi definire le caratteristiche geometriche del layer in output
Tipo di geometria: mantiene la geometria originale quando impostata su Automatico, altrimenti rimuove o sovrascrive con qualsiasi tipo. Puoi aggiungere una colonna vuota di geometria a una tabella di attributo, rimuovere la colonna geometrica 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 Aggiungi parte.
Opzioni su origine dati, Opzioni del layer o Opzioni personalizzate che ti consentono di configurare alcuni parametri avanzati. Consulta la documentazione del driver gdal-ogr
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,.
Creazione di nuovi file DXF¶
Oltre alla finestra di dialogo Salva come… che offre opzioni per esportare un singolo layer in un altro formato, incluso *.DXF
, QGIS fornisce un altro strumento per esportare più layers come singoli layers DXF. È accessibile nel menu .
Nella finestra di dialogo Esportazione DXF:
indicare la destinazione del layer file;
Scegliere la tipologia e la scala dei simboli (vedi la nota OGR Feature Styles ) se applicabile;
Selezionare la Codifica dei dati.
Selezionare il SR da applicare: i layer selezionati verranno riproiettati nel SR indicato.
selezionare i layer da includere nei file DXF o controllando ciascuno nel widget della tabella o selezionandoli automaticamente da un tema esistente map theme. I pulsanti Seleziona Tutto e Deseleziona Tutto possono anche aiutare ad impostare rapidamente i dati da esportare.
Per ogni layer, puoi anche scegliere se esportare tutti gli oggetti in un singolo layer DXF o fare affidamento su un campo i cui valori sono usati per separare gli oggetti nei layer di destinazione generati nell’output DXF.
Opzionalmente puoi anche scegliere di:
Se impostato usa il titolo del layer come nome invece del nome del layer stesso;
Esporta gli elementi che intersecano l’attuale estensione della mappa;
Forza risultato 2D (ad esempio per supportare la larghezza della polilinea);
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
e scegliendo:Salva i vettori come… in cui puoi selezionare qualsiasi formato di dati supportato (vedi Creare nuovi layer da layer esistente for parameters);
: devi selezionare il SR, aprire la finestra di dialogooppure Layer Scratch Temporaneo…: devi selezionare il SR del layer e assegnare un nome.
Viene creato un nuovo layer, completo delle geometrie selezionate e relativi attributi e aggiunto alla visualizzazione mappa se richiesto.
Nota
La creazione di layer dagli appunti è possibile con oggetti selezionati e copiati all’interno di QGIS, nonché oggetti di un’altra applicazione, a condizione che siano definitie utilizzando il formato stringa well-known text (WKT).
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 visti come viste ad altri layer.
Per creare un layer virtuale, apri la finestra di dialogo per la creazione di un layer virtuale:
abilitando il Aggiungi layer virtuale nella finestra di dialogo Data Source Manager;
oppure utilizzando la voce della finestra di dialogo DB Manager.
La finestra di dialogo ti consente di specificare un Nome vettore e una SQL Interrogazione. 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.
È 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.
Layer nidificati da usare nelle query¶
Oltre ai layer vettoriali disponibili nell’area di visualizzazione della mappa, l’utente può aggiungere layer alla lista Layer inclusi, layer che può utilizzare nelle query senza doverli mostrare nell’area di visualizzazione della 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 consente di aggiungere i layer caricati nell’area di disegno della mappa all’elenco dei layer incorporati. Questo consente di rimuovere successivamente questi layer dal Pannello Layer senza interrompere alcuna query esistente.
Linguaggi query supportati¶
Il motore incorporato utilizza SQLite e SpatiaLite per operare.
Ciò significa che puoi utilizzare tuttoi 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
.
Contrariamente a una query SQL pura, devono essere denominati tutti i campi di una query di layer virtuale. Non dimenticare di utilizzare la parola chiave as
per indicare le colonne se sono il risultato di un calcolo o di una funzione.
Problemi relativi alle prestazioni¶
Con parametri predefiniti, il motore del layer virtuale proverà a rilevare il tipo delle diverse colonne della query, incluso il tipo di colonna geometria se presente.
Questo viene fatto analizzando l’interrogazione se possibile o recuperando la prima riga dell’interrogazione (LIMIT 1) in ultima istanza. Il recupero della prima riga del risultato per creare lo strato può essere indesiderabile per motivi di prestazioni
La finestra di dialogo per creare un layer virtuale ti permette di specificare diversi parametri.
Colonna identificativa univoca: questa opzione ti permette di specificare quale campo dell’interrogazione rappresenta i valori interi univoci che QGIS può utilizzare come identificatore di riga. Per default, viene utilizzato un valore intero autoincrementale. Specificando una colonna identificatore univoco potrai velocizzare la selezione delle righe.
Nessuna geometria: questa opzione forza il layer virtuale a ignorare qualsiasi campo geometria. Il layer risultante sarà solamente un layer tabella attributi.
Colonna geometria: questa opzione ti permette di specificare il nome della colonna da utilizzare come geometria del layer.
Tipo: questa opzione ti permette di specificare il tipo di geometria del layer virtuale.
SR: quest’opzione ti permette di specificare il sistema di riferimento delle coordinate del layer virtuale.
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.
Uso degli indici¶
Quando si interagisce con un layer virtuale, gli indici di questo layer vengono 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 un” 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 innesca 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.