Diskussion:Workshop QGIS Python GeoPython 2017: Unterschied zwischen den Versionen
Stefan (Diskussion | Beiträge) K |
Stefan (Diskussion | Beiträge) K |
||
Zeile 29: | Zeile 29: | ||
Writing: | Writing: | ||
* How to install and share an Expression Function? | * How to install and share an Expression Function? | ||
− | ** | + | ** Save and Load in "Function Edtior" (saves to "%USERHOME%.qgis2\python\expressions" (where %USERHOME% under Windows is e.g. "C:\Users\sfkeller\"). |
− | ** Add | + | ** Add Fn. to qgis2/python/startup.py |
− | ** | + | ** Add Fn. to any (own and loaded) QGIS plugin |
− | ** | + | ** Add Fn. to the "Expresion Plus Plugin" |
* Debugging: | * Debugging: | ||
− | ** print | + | ** use "print" |
− | ** use pdb | + | ** use pdb (see QGIS docs and giswiki) |
− | ** (Remote Debug Plugin) | + | ** (use Remote Debug Plugin) |
* FAQ | * FAQ | ||
** How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs) | ** How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs) |
Version vom 9. März 2017, 14:55 Uhr
See also
Custom Python Expression Functions for QGIS
Possible examples:
- Function reading from other feature properties
- Function reading from other layers (1:1)
- Functions aka system variables and "Singletons" like layer properties or number sequence (spcial Plugin needed?)
- Function for remote webservice: geocoding (reading from the internet)
QGIS 2.18.x LTE
Where are Expression Functions used?
- Processing => Refactor fields
Use cases:
- z.B. env('USERNAME')
- Autoincrement / Sequence => QGIS 2.18 default Werte (QGIS 3 geplant)
- Add new (calculated) field
Plugins:
- ExpressionPlus (for QGIS)
- refFunctions
- spatialJoin
- AutoFields (obsolete)
Writing:
- How to install and share an Expression Function?
- Save and Load in "Function Edtior" (saves to "%USERHOME%.qgis2\python\expressions" (where %USERHOME% under Windows is e.g. "C:\Users\sfkeller\").
- Add Fn. to qgis2/python/startup.py
- Add Fn. to any (own and loaded) QGIS plugin
- Add Fn. to the "Expresion Plus Plugin"
- Debugging:
- use "print"
- use pdb (see QGIS docs and giswiki)
- (use Remote Debug Plugin)
- FAQ
- How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)
Notes:
Add attributes from a layer in the project or an external file (csv) to a layer (or the composer?) using insert expression? Create a custom expression python function to do this: http://nathanw.net/2012/11/10/user-defined-expression-functions-for-qgis/
How to import a user defined expression functions on QGIS start up. => Add them to qgis2/python/startup.py
Given polygon layer and a point one, calculate for each polygon feature, the number of points that it covers: https://lists.osgeo.org/pipermail/qgis-user/2016-October/038139.html http://gis.stackexchange.com/questions/212415/referencing-to-features-geometry-in-an-expression/212762#212762
Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/
Expressions Plus Plugin - Extra functions for the expression engine which didn't make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/
Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/) E.g. https://github.com/mara91/qgis_styles.git