Filtrování formulářů - filtrování dat vrstvy na základě hodnot polí

Princip

Tento nástroj zobrazuje v levém panelu formulář založený na některých polích a umožňuje uživatelům vyhledávat mezi daty vrstvy pomocí různých formulářových vstupů: kombinovaných polí, zaškrtávacích polí, textových vstupů s automatickým doplňováním, výběru data pomocí posuvníků mezi min. a max. datem atd.

Varování

Funguje pouze s vrstvami databáze: PostgreSQL (doporučeno), Spatialite a GeoPackage.

Pomocí příkazů SQL se Lizmap dotazuje na data, která má získat:

  • celkový počet prvků pro aktuální filtr

  • jedinečné hodnoty některých polí (například pro typ Unique Values).

  • minimum a maximum číselných polí nebo datových polí.

  • rozsah dat pro aktuální filtr

Poznámka

Tlačítko Export v panelu Filtr je propojeno s nástrojem tabulka atributů.

Příklad

Video s příkladem si můžete prohlédnout na adrese: https://vimeo.com/331395259.

Předpoklady

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

Konfigurace nástroje

../../_images/interface-add-form-filter.jpg

V zásuvném modulu Lizmap je karta, která umožňuje konfigurovat vstupy filtru na základě polí vrstvy. Můžete přidat jedno nebo více polí pro jednu nebo více vrstev. Pokud přidáte pole ze dvou nebo více různých vrstev, zobrazí webový klient Lizmap combo box, který uživateli umožní vybrat vrstvu, která se má filtrovat. Výběrem vrstvy se formulář obnoví a aktuální filtr se deaktivuje.

  • Do tabulky zásuvných modulů je třeba přidat řádek pro každé pole, které chcete přidat do formuláře filtru. Pro každé pole je třeba nakonfigurovat některé možnosti:

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

    2. Vrstva: zdrojová vrstva.

    3. Title: nadpis, který se zobrazí nad vstupem formuláře. Například „Vyberte kategorii“ pro pole vrstvy s názvem „kategorie“.

    4. Typ: typ vstupního údaje formuláře, jeden z následujících: Text, Unique Values, Date, Numeric.

    5. Pole: název pole (v tabulce databáze). Pouze pro typy Text, Unique Values a Numeric.

    6. Min date: pole obsahující počáteční datum vašeho objektu (např.: „start_date“ události). Toto je nutné pouze pro typ Date. Pokud máte v datech pouze jedno pole s datem, měli byste jej vybrat v poli Min Date.

      • Max date: pole obsahující konečné datum vašich dat. Pokud máte 2 pole obsahující data, jedno pro počáteční datum a druhé pro koncové datum, můžete je odlišit. Pokud tomu tak není, musíte použít stejný název pole pro Min date a Max date.

      • Format: pouze formát typu Unique values. Může to být select, který zobrazí combo box, nebo checkboxes, který zobrazí jedno zaškrtávací políčko pro každou odlišnou hodnotu. Na odlišné hodnoty se dynamicky dotazuje Lizmap Web Client.

    7. Rozdělovač: pouze pro typ Jednotlivé hodnoty. Použijte, pokud chcete hodnoty pole rozdělit oddělovačem. Například: kultura, prostředí lze rozdělit na kultura a prostředí pomocí rozdělovače `, `.

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

Popis různých typů vstupů formuláře

Text

Jedná se o nejjednodušší typ. Při tomto typu zadávání se uživateli zobrazí klasický textový vstup. Můžete zadat libovolný text a poté jej ověřit. Ve výchozím nastavení je povoleno automatické doplňování, což znamená, že Lizmap bude pro toto pole načítat jedinečné hodnoty. Tato možnost by mohla být v budoucnu využita, pokud by některé datové sady byly příliš velké a tato funkce automatického doplňování by byla příliš náročná.

Sestavený filtr bude vypadat takto:

"field" LIKE '%foo%'

Datum

Tento typ zadávání zobrazí posuvník se 2mi úchyty, který umožňuje vyhledávat mezi dvěma vybranými hodnotami. Zobrazí se také dva textové vstupy, které lze použít k ručnímu nastavení min. a max. data.

Datum je „zkráceno“ na datum (zatím bez časových údajů, jako jsou hodiny, minuty nebo sekundy).

Krok posuvníku je pevně zakódován a rovná se 86400 sekundám, což znamená 1 den.

Sestavený filtr bude vypadat takto:

( ( "field_date" >= '2017-04-23' OR  "field_date" >= '2017-04-23' ) AND ( "field_date" <= '2018-06-24' OR  "field_date" <= '2018-06-24' ) )

Číselný

Tento typ zadávání zobrazí posuvník se dvěma úchyty, který umožňuje vyhledávat mezi dvěma vybranými hodnotami. Zobrazí se také dva textové vstupy, které lze použít k ručnímu nastavení min. a max. hodnoty.

Sestavený filtr bude vypadat takto:

( ( "field" >= 100 ) AND ( "field_date" <= 200 ) )

Unikátní hodnoty

Lizmap se zeptá na data a získá odlišné hodnoty pole. Můžete si vybrat dva různé typy vstupů: výběr nebo zaškrtávací políčka.

Pokud jste zadali rozdělovací text, například `, `, Lizmap najde jedinečné hodnoty oddělených textových hodnot. Například hodnota jedné vlastnosti kultura, prostředí bude rozdělena na kultura a prostředí pomocí rozdělovače `, `. Výběrem kultura nebo prostředí ve vstupním formuláři se tato funkce zobrazí.

Můžete si vybrat, zda chcete zobrazit dva různé typy vstupů:

  • Combo box: tento typ zobrazí combo box se seznamem různých hodnot pro dané pole. Uživatel bude moci z hodnot vybrat pouze jednu položku.

  • Zaškrtávací políčka: tento typ zobrazí tolik comboboxů, kolik je různých hodnot pro dané pole. Data budou filtrována pomocí UNION mezi zaškrtnutými položkami.

Sestavený filtr bude vypadat takto:

( "field_thematique" LIKE '%Cuisine%'  OR "field_thematique" LIKE '%Ecocitoyen%'  )