PyQGIS developer cookbook - Documentation
PyQGIS developer cookbook
Release 3.4
QGIS Project
Mar 15, 2020
Contents
1
Introduction
1.1 Scripting in the Python Console . . . .
1.2 Python Plugins . . . . . . . . . . . . .
1.3 Running Python code when QGIS starts
1.4 Python Applications . . . . . . . . . .
1.5 Technical notes on PyQt and SIP . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
2
2
3
5
2
Loading Projects
7
3
Loading Layers
3.1 Vector Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Raster Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 QgsProject instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
12
13
4
Using Raster Layers
4.1 Layer Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Renderer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Query Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
16
17
5
Using Vector Layers
5.1 Retrieving information about attributes . .
5.2 Iterating over Vector Layer . . . . . . . . .
5.3 Selecting features . . . . . . . . . . . . . .
5.4 Modifying Vector Layers . . . . . . . . . .
5.5 Using Spatial Index . . . . . . . . . . . .
5.6 Creating Vector Layers . . . . . . . . . . .
5.7 Appearance (Symbology) of Vector Layers
5.8 Further Topics . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
19
20
20
21
23
26
27
30
38
6
Geometry Handling
6.1 Geometry Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Access to Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Geometry Predicates and Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
39
40
41
7
Projections Support
7.1 Coordinate reference systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 CRS Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
43
44
8
Using the Map Canvas
8.1 Embedding Map Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Rubber Bands and Vertex Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3 Using Map Tools with Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
48
48
49
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
8.4
8.5
Writing Custom Map Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Writing Custom Map Canvas Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
52
Map Rendering and Printing
9.1 Simple Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Rendering layers with different CRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3 Output using print layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
53
54
54
10 Expressions, Filtering and Calculating Values
10.1 Parsing Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Evaluating Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3 Handling expression errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
58
58
60
11 Reading And Storing Settings
61
12 Communicating with the user
12.1 Showing messages. The QgsMessageBar class . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2 Showing progress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
63
65
66
13 Authentication infrastructure
13.1 Introduction . . . . . . . . . . . . . . . . . . . .
13.2 Glossary . . . . . . . . . . . . . . . . . . . . . .
13.3 QgsAuthManager the entry point . . . . . . . . .
13.4 Adapt plugins to use Authentication infrastructure
13.5 Authentication GUIs . . . . . . . . . . . . . . . .
.
.
.
.
.
67
68
68
68
71
71
14 Tasks - doing heavy work in the background
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
75
76
15 Developing Python Plugins
15.1 Structuring Python Plugins . . . . . . . . . . .
15.2 Code Snippets . . . . . . . . . . . . . . . . .
15.3 Using Plugin Layers . . . . . . . . . . . . . .
15.4 IDE settings for writing and debugging plugins
15.5 Releasing your plugin . . . . . . . . . . . . .
81
81
89
90
91
97
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16 Writing a Processing plugin
101
17 Network analysis library
103
17.1 General information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
17.2 Building a graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
17.3 Graph analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
18 QGIS Server Python Plugins
18.1 Server Filter Plugins architecture
18.2 Raising exception from a plugin .
18.3 Writing a server plugin . . . . . .
18.4 Access control plugin . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
111
112
113
113
117
19 Cheat sheet for PyQGIS
19.1 User Interface . .
19.2 Settings . . . . . .
19.3 Toolbars . . . . .
19.4 Menus . . . . . .
19.5 Canvas . . . . . .
19.6 Layers . . . . . .
19.7 Table of contents .
19.8 Advanced TOC . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
121
121
121
121
122
122
122
126
126
ii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19.9 Processing algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
19.10 Decorators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
19.11 Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
iii
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- getting started with python
- use python with r with reticulate cheat sheet
- pyqgis developer cookbook documentation
- python notes university of chicago
- python guide documentation read the docs
- python for economists harvard university
- pulp a linear programming toolkit for python
- basic python programming for loops and reading files
- python practice book read the docs
- python introduction for absolute beginners