Úpravy - úprava vrstvy z webového rozhraní

Princip

Uživatelům je možné umožnit úpravu prostorových a atributových dat z rozhraní Lizmap Web Client pro vrstvy PostgreSQL. Zásuvný modul Lizmap umožňuje přidat jednu nebo více vrstev a zvolit, jaké akce pro každou z nich bude možné provádět ve webovém rozhraní:

  • vytváření prvků

  • úprava atributů

  • úprava geometrie

  • mazání prvků

Webový formulář, který se uživateli zobrazí pro vyplnění tabulky atributů, podporuje editační nástroje dostupné na kartě pole ve vlastnostech vektorové vrstvy QGIS. Můžete nastavit rozbalovací seznam, skrýt sloupec, znemožnit jeho editaci, použít zaškrtávací políčko, textovou oblast atd. Veškerá konfigurace se provádí myší, v QGIS a v zásuvném modulu Lizmap.

Kromě toho Lizmap Web Client automaticky rozpozná typ sloupce (celé číslo, reálné číslo, řetězec atd.) a přidá do polí potřebné kontroly a ovládací prvky.

Příklady

  • Město si přeje, aby občané identifikovali viditelné problémy na silnicích: neodvezené odpadky, rozbité pouliční osvětlení, vraky k odstranění. Správce projektu QGIS vytvoří vrstvu určenou pro sběr dat a zobrazí je všem.

  • Inženýrská kancelář chce umožnit projektovým partnerům sledovat připomínky k projektovým oblastem. Umožňuje přidávat polygony ve vyhrazené vrstvě.

Předpoklady

Chcete-li povolit úpravy dat v aplikaci Lizmap Web Client, musíte:

  • Vektorová vrstva uložená v PostgreSQL.

  • Vektorová vrstva nesmí mít v názvech polí mezeru.

  • Nastavte nástroj pro úpravu vrstvy v Vlastnosti vrstvy ‣ Formulář atributů. Není to povinné, ale doporučuje se to kvůli kontrole dat zadávaných uživateli. Další informace o rozvržení, widgetech, výrazech a omezeních ve formuláři najdete v Přizpůsobení formuláře pro editaci.

  • Vrstva musí být publikována jako WFS (viz WFS/OAPI) a primární klíč musí být také publikován v Vlastnosti vrstvy.

  • Přestože chceme vrstvu upravovat, není třeba používat zaškrtávací políčka Update, Insert a Delete v tabulce WFS na kartě QGIS Server. Lizmap nepoužívá WFS-T. Lizmap provede úpravy přímo v datovém zdroji. Konfigurace se provádí pouze v panelu popsaném níže.

  • V důsledku výše uvedeného :

Poznámka

Dávejte pozor, pokud vaše vrstva obsahuje některé hodnoty Z nebo M, Lizmap je bohužel při ukládání do databáze nastaví na „0“, což je výchozí hodnota.

Konfigurace nástroje

Zde jsou uvedeny podrobné kroky:

  • V případě potřeby vytvořte v databázi vrstvu s požadovaným typem geometrie (bod, linie, polygon atd.).

    • přemýšlejte o přidání primárního klíče: je to nezbytné!

    • sloupec primárního klíče musí být typu auto-inkrement. Například serial pro PostgreSQL.

    • přemýšlejte o přidání prostorového indexu: je to důležité pro výkon.

    • vytvořte tolik polí, kolik potřebujete pro atributy: pokud je to možné, používejte jednoduché názvy polí!

Prosím odkazujte se na dokumentaci QGIS, abyste zjistili, jak vytvořit prostorovou vrstvu v databázi PostgreSQL.

../../_images/interface-add-edition-layer.jpg
  • Povolení vrstvy s možností editace:

    1. Klikněte na tlačítko add_layer_svg.

    2. Vyberte vrstvu v rozevíracím seznamu

    3. Zaškrtněte akce, které chcete aktivovat:
      • Vytvořit

      • Upravit atributy

      • Upravit geometrii

      • Smazat

    4. Nepovinně můžete přidat seznam skupin, které je povoleno upravovat, oddělený čárkou.

    5. Přichycení lze aktivovat, pokud v seznamu vrstev vyberete alespoň jednu vrstvu.
      • Vrstva musí být publikována jako WFS (viz WFS/OAPI) a primární klíč musí být také publikován v Vlastnosti vrstvy.

    6. Pokud je výše vybrána jedna vrstva, musí být použito alespoň jedno zaškrtávací políčko :
      • Vrcholy

      • Segmenty

      • Intersections

    7. Je možné nastavit toleranci přichycení.

  • Chcete-li upravit vrstvu v tabulce, vyberte ji a klikněte na tlačítko edit_layer_svg nebo dvakrát klikněte na řádek.

  • Chcete-li vrstvu z tabulky odstranit, vyberte ji a klikněte na tlačítko remove_layer_svg.

  • Chcete-li vrstvu přesunout nahoru nebo dolů, vyberte ji a klikněte na tlačítka down_layer_svg nebo up_layer_svg. Pořadí se změní i v aplikaci Lizmap.

  • Pole se zobrazí se svým aliasem, pokud je definován. Viz Přidání aliasu k poli.

Konfigurace formuláře

Formulář v Lizmap je zděděný z Vlastnosti vrstvy. Přečtěte si Přizpůsobení formuláře pro editaci.

Opětovné použití dat vrstev edice

Vrstvy, které jste vybrali pro nástroj pro úpravy, jsou „vrstvy jako ostatní“, což znamená:

  • Na tyto vrstvy se aplikují styly a popisky QGIS. Můžete vytvořit styly a popisky, které závisí na hodnotě sloupce vrstvy.

  • Pokud chcete navrhnout nástroj pro úpravy, ale neumožňuje uživatelům prohlížet data z online vrstvy (a tedy ani doplňky jiných uživatelů): Můžete jednoduše skrýt editační vrstvy tím, že je umístíte do skrytého adresáře. Viz Maskování jednotlivých vrstev (skryté vrstvy).

  • Vrstvy jsou tisknutelné, pokud nejsou maskované.

  • Data jsou uložena ve vrstvě projektu. Správce může tato data načíst a následně je použít.

Poznámka

Použití mezipaměti: zda chcete pro úpravy vrstev použít mezipaměť serveru nebo klienta, udělejte to vědomě: data nebudou pro uživatele viditelná, dokud nevyprší platnost mezipaměti. Doporučujeme mezipaměť pro úpravy vrstev nepovolovat.

Přidávání souborů a obrázků pro funkce

Použijte složku media/upload vztaženou k projektu.

Během online úprav je možné nahrát soubory včetně obrázků pro každou funkci; k tomu je třeba:

  • Konfigurujte edici pro vrstvu s jedním nebo více poli s edit type Photo nebo File. Například, předpokládejme, že název pole je photo.

  • Vytvořte složku v kořenovém adresáři souboru projektu QGIS : media/ a podsložku media/upload (samozřejmě to musíte udělat lokálně v počítači a na straně serveru).

  • Dejte uživateli webového serveru (obvykle www-data) oprávnění k zápisu do složky upload, aby mohl vytvářet soubory a složky v media/upload:

    chmod 775 -R media/upload && chown :www-data -R media/upload

  • Zkontrolujte php.ini, zda jsou proměnné post_max_size a upload_max_filesize správně nastaveny (ve výchozím nastavení PHP umožňuje nahrávat pouze soubory do velikosti 2 MB).

Lizmap pak vytvoří složky pro ukládání dat v závislosti na názvu vrstvy, názvu pole atd. Například soubor bude uložen ve složce media/upload/PROJECT_NAME/LAYER_NAME/FIELD_NAME/FILE_NAME.EXT a obrázek v media/upload/environment/observations/species_picture/my_picture.png.

Je zřejmé, že tento obrázek (nebo jakýkoli jiný soubor) budete moci zobrazit ve vyskakovacím okně, protože bude uložen ve složce médií. Viz Použití ve vyskakovacích oknech

Použití konkrétní cílové složky

Výchozí cílovou složku media/upload/PROJECT_NAME/LAYER_NAME/FIELD_NAME/FILE_NAME.EXT můžete zrušit ručním nastavením cesty, kam se má médium uložit, relativně k projektu. K tomu je třeba použít widget pro úpravu pole Externí zdroj a nakonfigurovat jej pomocí:

  • a Výchozí cesta zapsaná relativně k projektu. Například ../media/images/, pokud chcete soubory tohoto pole uložit do složky media umístěné vedle složky projektu. Můžete také zvolit nastavení cesty uvnitř složky media projektu. Například media/my_target_folder/.

  • zaškrtněte políčko Relativní cesta s výchozí volbou Relativní k cestě projektu.

  • pokud má pole ukládat obrázek, měli byste také zaškrtnout políčko Integrovaný prohlížeč dokumentů s typem Obrázek.

To umožňuje ukládat odeslané mediální soubory a obrázky do centralizované složky, například do adresáře media na stejné úrovni jako složky úložišť Lizmap:

  • media

    • images <– pro uložení obrázků do této složky použijte ../media/images/

    • pdf

  • prostředí

    • trees.qgs

    • trees.qgs.cfg

    • media

      • tree_pictures/ <– pro uložení obrázků do této složky použijte: media/tree_pictures/

Použijte vzdálené úložiště WebDAV.

Je možné uložit své soubory na vzdálený server, který podporuje protokol WebDAV (např. Nextcloud). K dosažení toho musíte:

  • Nakonfigurujte editační widget Přílohy pro vybrané pole následovně:

    1. V poli Typ úložiště vyberte možnost WebDAV úložiště.

    2. V sekci Externí úložiště` na poli URL úložiště přidejte výraz, který udává úplnou URL vzdálené cesty k souboru. Řetězec výrazu musí:

    • začínat s vzdálenou adresou URL úložiště root složky serveru WebDAV

    • zahrnovat nebo nezahrnovat jakoukoli cílovou podsložku

    • končit s výrazem file_name(@selected_file_path)

    1. aktualizovat sekci Authentication s vaším uživatelským jménem a heslem (volitelné, přečtěte si níže o autentizaci)

    ../../_images/webdav-configure-attachment-widget.jpg

    Například, pokud chcete nahrát soubor na svůj server WebDAV https://webdav/dav do podsložky pictures/2024/, pak celý výraz bude:

    'https://webdav/dav/pictures/2024/'||file_name(@selected_file_path)

    Můžete také nahrát soubor přímo do kořenové složky, jednoduše změňte výraz výše na 'https://webdav/dav/'||file_name(@selected_file_path)

    Tip

    Můžete konfigurovat různá pole ve stejné vrstvě nebo v různých vrstvách pro nahrávání souborů do vašeho vzdáleného úložiště do různých podadresářů.

  • Nakonfigurujte svou instalaci Lizmap tak, aby rozpoznávala vaše WebDAV úložiště. Proveďte to tak, že upravíte sekci [webdav:default] ve vašem souboru var/config/profiles.ini.php.

    [webdav:default]
    baseUri=https://webdav/dav/
    enabled=1
    user=mywebdavuser
    password=mywebdavpassword
    

    kde:

    • baseUri je kořenová složka vašeho serveru WebDAV. Musí končit / a musí být stejná jako je uvedeno ve widgetu Příloha

    • enabled nastavte na 1 zapnout konfiguraci WebDAV nebo na 0 vypnout

    • user, WebDAV baseUri autentizační uživatel, stejný jako je nastavený v sekci Authentifikace v sekci Externí úložiště

    • password, WebDAV baseUri authentication password, same as above

    Poznámka

    user and password fields are not mandatory, depends on how you intend to manage the WebDAV storage.

    Poznámka

    Configure multiple WebDAV servers on the same Lizmap installation is not supported, so you can configure only one WebDAV endpoint per installation.

    Varování

    To get files from remote storage the baseUri will be exposed on the web client.

    Varování

    If an user upload two files with the same name the first file could be overwritten. This behaviour cannot be controlled by Lizmap since it concerns the configuration and the structure of the WebDAV server.

    Tip

    To prevent files from being overwritten you can set the Store URL by placing a uuid in front of the file name, for example: 'https://webdav/dav/pictures/2024/'||uuid('WithoutBraces')||'_'||file_name(@selected_file_path)

Po provedení dvou výše uvedených konfiguračních kroků budete schopni:

Varování

Unfortunately, this feature is not yet compatible with Lizmap Cloud.