Editing — Edit a layer from the web interface
Regola
E” possibile permettere agli utenti di modificare i dati spaziali e degli attributi dall’interfaccia Lizmap Web Client per i livelli PostgreSQL. Il plugin Lizmap permette di aggiungere uno o più livelli e di scegliere quali azioni per ciascuno saranno possibili nell’interfaccia web:
creare elementi
modificare attributi
modificare la geometria
cancellare elementi
Il form web presentato all’utente per popolare la tabella degli attributi supporta gli strumenti di modifica disponibili nella scheda campi delle proprietà dei livelli vettoriali di QGIS. È possibile configurare un menu a tendina, nascondere una colonna, renderla non modificabile, utilizzare una casella di controllo, un’area di testo, ecc. Tutta la configurazione è fatta con il mouse, in QGIS e nel plugin Lizmap.
Inoltre, Lizmap Web Client rileva automaticamente il tipo di colonna (intero, reale, stringa, ecc.) e aggiunge i controlli necessari sui campi.
Esempi
Una città desidera che i cittadini identifichino i problemi visibili sulla strada: spazzatura non raccolta, lampioni rotti, relitti da rimuovere. L’amministratore del progetto QGIS crea un livello dedicato alla raccolta dei dati e li visualizza a tutti.
Un ufficio di ingegneria vuole permettere ai partner del progetto di tracciare delle osservazioni sulle aree del progetto. Permette l’aggiunta di poligoni in un livello dedicato.
Prerequisiti
Per consentire la modifica dei dati in Lizmap Web Client, è necessario:
Far memorizzare il livello vettoriale in PostgreSQL.
Il livello vettoriale non deve avere spazi nei nomi dei campi.
Configura lo strumento di modifica per il livello in Personalizzare il form di modifica per maggiori informazioni su layout, widget, espressioni, vincoli in un form.
. Questo non è richiesto ma raccomandato per controllare i dati inseriti dagli utenti. VediIl livello deve essere pubblicato come WFS (vedi WFS/OAPI) e la chiave primaria deve essere pubblicata anche nelle Proprietà del livello.
Nonostante si voglia modificare il livello, non c’è bisogno di usare le caselle di controllo Update, Insert e Delete nella tabella WFS nella scheda QGIS Server. Lizmap non usa WFS-T. Lizmap effettuerà la modifica direttamente sul datasource. La configurazione viene fatta solo nel pannello descritto di seguito.
Conseguentemente a quanto sopra:
Le credenziali non devono utilizzare il sistema di autenticazione fornito da QGIS per un livello con capacità di modifica. Le credenziali devono essere o nel file di progetto QGS o nel file di servizio PostgreSQL (consigliato, più sicuro perché le credenziali non sono memorizzate nel progetto QGIS) :
Nota
Fate attenzione se il vostro livello contiene dei valori Z o M, sfortunatamente Lizmap li imposterà a «0» che è il valore predefinito quando si salva nel database.
Configurazione del plugin
Ecco i passi dettagliati:
Se necessario, create un livello nel vostro database con il tipo di geometria desiderato (punto, linea, poligono, ecc.)
pensate ad aggiungere una chiave primaria: è essenziale!
la colonna chiave primaria deve essere di tipo auto-incrementale. Per esempio serial in PostgreSQL.
pensare di aggiungere un indice spaziale: questo è importante per le prestazioni
creare tanti campi quanti ne servono per gli attributi: se possibile, usare nomi di campi semplici!
Fate riferimento alla documentazione di QGIS per vedere come creare un livello spaziale in un database PostgreSQL: https://docs.qgis.org/latest/en/docs/user_manual/managing_data_source/index.html
Per abilitare un livello con capacità di modifica:
Fai clic sul pulsante .
Seleziona il livello nell’elenco a discesa
- Controlla le azioni che vuoi attivare:
Crea
Modifica attributi
Modifica geometria
Cancella
Opzionale, puoi aggiungere una lista di gruppi che sono autorizzati a modificare, separati da una virgola.
- Lo snap può essere attivato se si seleziona almeno un livello nella lista dei livelli.
Il livello deve essere pubblicato come WFS (vedi WFS/OAPI) e la chiave primaria deve essere pubblicata anche nelle Proprietà del livello.
- Se un livello sopra è selezionato, almeno una casella di controllo deve essere utilizzata:
Vertici
Segmenti
Intersezioni
È possibile impostare la tolleranza per lo snap.
Per modificare un livello nella tabella, selezionalo e clicca sul pulsante o fai doppio clic sulla riga.
Per rimuovere un livello dalla tabella, selezionalo e clicca sul pulsante .
Per spostare un livello in alto o in basso, selezionatelo e cliccate sui pulsanti o . L’ordine cambierà anche in Lizmap.
I campi saranno visualizzati con il loro alias se è definito. Vedi Aggiungere un alias ad un campo.
Configuring the form
The form in Lizmap is inherited from the Layer Properties. Read the Personalizzare il form di modifica.
Riutilizzare i dati dei livelli di modifica
I livelli che avete selezionato per lo strumento di modifica sono «livelli come gli altri», il che significa:
Si possono creare stili ed etichette che vengono applicati a questi livelli. Si possono creare stili ed etichette che dipendono da un valore di una colonna del livello.
Se si vuole proporre lo strumento di modifica, ma non permettere agli utenti di visualizzare i dati del livello online (e quindi le aggiunte di altri utenti): si può semplicemente nascondere i livelli di modifica mettendoli in una directory nascosta. Vedi Mascherare i singoli livelli.
I livelli sono stampabili se non sono mascherati.
I dati sono memorizzati in un livello del progetto. L’amministratore può recuperare questi dati e utilizzarli in seguito.
Nota
Utilizzo della cache: se si vuole utilizzare la cache del server o del client per la modifica dei livelli, lo si faccia consapevolmente: i dati non saranno visibili agli utenti finché la cache non sarà scaduta. Suggeriamo di non abilitare la cache per la modifica dei livelli.
Aggiungere file e immagini per gli elementi
Utilizzare la cartella media/upload relativa al progetto
È possibile caricare i vostri file, comprese le immagini, per ogni elemento, durante la modifica online; per ottenere questo, è necessario:
Configura la modifica per il livello, con uno o più campi con l’etichetta tipo di modifica
Photo
oFile
. Per esempio, diciamo che il nome del campo èphoto
.Crea una cartella alla radice del file del progetto QGIS:
media/
e una sottocartellamedia/upload
(ovviamente devi farlo localmente nel tuo computer e lato server).Dare all’utente del webserver (di solito www-data) il permesso di scrittura sulla cartella di upload, in modo che possa creare file e cartelle in
media/upload
:chmod 775 -R media/upload && chown :www-data -R media/upload
Controlla il tuo
php.ini
per vedere se le variabilipost_max_size
eupload_max_filesize
sono impostate correttamente (per pre definizione, PHP permette di caricare solo file fino a 2 Mbyte)
Lizmap creerà poi delle cartelle per memorizzare i dati, a seconda del nome del livello, del nome del campo, ecc. Per esempio, un file verrebbe memorizzato nella cartella media/upload/PROJECT_NAME/LAYER_NAME/FIELD_NAME/FILE_NAME.EXT
e un’immagine in media/upload/environment/observations/species_picture/my_picture.png
.
Ovviamente sarete in grado di visualizzare questa immagine (o qualsiasi altro file) nel popup, poiché sarà memorizzata nella cartella media. Vedi Uso nel pop-up.
Utilizzare una cartella di destinazione specifica
Si può sovrascrivere la cartella di destinazione predefinita media/upload/PROJECT_NAME/LAYER_NAME/FIELD_NAME/FILE_NAME.EXT
impostando manualmente il percorso dove memorizzare i media, relativamente al progetto. Per farlo, devi usare il widget di modifica del campo External resource e configurarlo con:
un Percorso predefinito scritto relativo al progetto. Per esempio
../media/images/
se vuoi memorizzare i file di questo campo in una cartella media situata accanto alla cartella del progetto. Puoi anche scegliere di impostare un percorso all’interno della cartella media del progetto. Per esempiomedia/my_target_folder/
.selezionare la casella di controllo Percorso relativo, con l’opzione predefinita :guilabel:`Relativo al percorso del progetto
se il campo deve memorizzare un’immagine, si dovrebbe anche spuntare la casella Visualizzatore di documenti integrato, con il tipo Image.
Questo permette di memorizzare i file multimediali e le immagini inviate in una cartella centralizzata, per esempio una directory media
allo stesso livello delle cartelle dei repository Lizmap:
media
images <– per memorizzare le immagini in questa cartella, usare
../media/images/
pdf
ambiente
trees.qgs
trees.qgs.cfg
media
tree_pictures/ <– per memorizzare le immagini in questa cartella, usare:
media/tree_pictures/