Redazione

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 Proprietà del livello ‣ Modulo attributi. Questo non è richiesto ma raccomandato per controllare i dati inseriti dagli utenti. Vedi Personalizzare il form di modifica per maggiori informazioni su layout, widget, espressioni, vincoli in un form.
  • Il livello deve essere pubblicato come WFS (vedi Capacità dei servizi OGC) 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:

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

../../_images/interface-add-edition-layer.jpg
  • Per abilitare un livello con capacità di modifica:

    1. Fai clic sul pulsante add_layer_svg.
    2. Seleziona il livello nell’elenco a discesa
    3. Controlla le azioni che vuoi attivare:
      • Crea
      • Modifica attributi
      • Modifica geometria
      • Cancella
    4. Opzionale, puoi aggiungere una lista di gruppi che sono autorizzati a modificare, separati da una virgola.
    5. Lo snap può essere attivato se si seleziona almeno un livello nella lista dei livelli.
      • Il livello deve essere pubblicato come WFS (vedi Capacità dei servizi OGC) e la chiave primaria deve essere pubblicata anche nelle Proprietà del livello.
    6. Se un livello sopra è selezionato, almeno una casella di controllo deve essere utilizzata:
      • Vertici
      • Segmenti
      • Intersezioni
    7. È possibile impostare la tolleranza per lo snap.
  • Per modificare un livello nella tabella, selezionalo e clicca sul pulsante edit_layer_svg o fai doppio clic sulla riga.

  • Per rimuovere un livello dalla tabella, selezionalo e clicca sul pulsante remove_layer_svg.

  • Per spostare un livello in alto o in basso, selezionatelo e cliccate sui pulsanti down_layer_svg o up_layer_svg. L’ordine cambierà anche in Lizmap.

  • I campi saranno visualizzati con il loro alias se è definito. Vedi Aggiungere un alias ad un campo.

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 o File. Per esempio, diciamo che il nome del campo è photo.

  • Crea una cartella alla radice del file del progetto QGIS: media/ e una sottocartella media/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 variabili post_max_size e upload_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 esempio media/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/