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 Layer ‣ Crea vettore ‣ newGeoPackageLayer Nuovo layer GeoPackage…. La finestra di dialogo Nuovo layer GeoPackage verrà visualizzata come mostrato in figure_create_geopackage.

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

Finestra di dialogo creazione Nuovo vettore 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 Crea Vettore ‣ newVectorLayer Nuovo shapefile… dal menu Layer 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).

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

Finestra di dialogo creazione nuovo Layer Shapefile

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 selectString, Numero intero selectString, dati testuali selectString e Data selectString. 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 Nuovo ‣ newSpatiaLiteLayer Nuovo Vettore SpatiaLite … dal menu Layer 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.

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

Finestra di dialogo creazione Nuovo layer 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 checkbox 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. Plugin ‣ showPluginManager Gestisci e installa Plugin… apre la finestra di dialogo Gestione Plugin. Attiva la casella checkbox Strumenti GPS.

Quando questo plugin è attivo, scegli Crea vettore ‣ createGPX Nuovo vettore GPX… dal menu Layer. 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 Layer ‣ Crea vettore ‣ createMemory Nuovo vettore temporaneo…. o createMemory 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 o Multi punto,

  • layer LineString/CompoundCurve o MultiLineString/MultiCurve,

  • layer Polygon/CurvePolygon o MultiPolygon/MultiSurface.

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

Finestra di dialogo creazione nuovo vettore temporaneo

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:

  • cliccando sull’icona indicatorMemory accanto al layer;

  • selezionando Rendi permanente nel menu contestuale del layer;

  • o come per qualsiasi altro layer vettoriale, usando la voce Esporta ‣ dal menu contestuale o dal menu Layer ‣ Salva con nome…..

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 ‣ 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… or Esporta ‣ Salva Elementi Selezionati Come… 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

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

  • Valori nulli

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

Salvare come un nuovo layer raster

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 checkbox 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 addPart 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

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

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,.

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 Progetto ‣ Esporta progetto in DXF….

Nella finestra di dialogo Esportazione DXF:

  1. indicare la destinazione del layer file;

  2. Scegliere la tipologia e la scala dei simboli (vedi la nota OGR Feature Styles ) se applicabile;

  3. Selezionare la Codifica dei dati.

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

  5. 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:

  • 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

Esportazione di un progetto nella finestra di dialogo DXF

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…: devi selezionare il SR, aprire la finestra di dialogo Salva i vettori come… in cui puoi selezionare qualsiasi formato di dati supportato (vedi Creare nuovi layer da layer esistente for parameters);

  • oppure 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:

  • selezionando l’opzione virtualLayer Add Virtual Layer dal menu Layer ‣ Aggiungi Layer ‣;

  • abilitando il virtualLayer 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.

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

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.

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.