Diskussion:Workshop QGIS Python GeoPython 2017

Aus Geoinformation HSR
Version vom 7. Mai 2017, 22:54 Uhr von Stefan (Diskussion | Beiträge) (Possible examples of custom Custom Expression Functions)

Wechseln zu: Navigation, Suche

See also

Usage of Expression Functions

This is a list of places where Expression Functions (EFns) can be used in QGIS:

  1. "Server-side" / data-related:
    1. "Select features using an expression" based on a field(Layer property).
    2. "Filtering features" while loading from source. See form view of Attribute table (button on bottom right corner) > click on 'Show All Features' (bottom left) and select 'Advanced Filter (Expression)'.
    3. "Layer > Properties > Tab Fields" in Button "Text Edit" in default- and in constraints field.
    4. "Layer > Properties > Tab Style" in "Label with" field.
    5. "Field Calculator" to defining new or virtual fields (Layer property).
    6. "Conditional formatting" of a field in Attribute table (Create a new rule and set the condition to the output of a custom EFn).
  2. Analysis-related:
    1. "Statistics Panel" / "Statistical Summary" of a field.
    2. "Atlas Generation" in the Print Composer. Project > Print Composer > Check 'generate an atlas' > Set EFn based values for page name, filter and output filename.
    3. Processing
  3. "Client-side" / style-related:
    1. "Map Tip" tool (Layer property).
    2. "Rule based labeling" (drop-down menu) in Layer Properties > Labels; click on '+' button and add a EFn based filter to a field.
    3. Part of "Geometry generator" for geometry field in "Style > Symbol Layer Type"

(Add other places to the list above if you find more).

Possible examples of custom Custom Expression Functions

  1. Function doing something "local" like from other field(s).
  2. Functions reading something like a "Singleton" like a system environment variable (usage "env('USERNAME')") layer properties or number sequence (spcial Plugin needed?).
  3. Function for remote webservice: geocoding (reading from the internet).
  4. Function reading from other layers (out of scope for a workshop rather, ev. also a processing or plugin candidate).

Here's a use case: A user wants to create a layer (table) which as a primary key (id) which behaves like 'autoincrement' when user edit a new feature. So user does not have to care about unique, sequential values for the PK, like autoincrement in MySQL). In QGIS 3 this is available when user chooses "UNIQUE" as constraint. In QGIS 2.18 (or before) there is a clever custom expression function needed. => Solution?

Notes

Collected (special) use cases:

Plugins:

Open: