9.2. Lesson: Useful QGIS Plugins

Now that you can install, enable and disable plugins, let’s see how this can help you in practice by looking at some examples of useful plugins.

The goal for this lesson: To familiarize yourself with the plugin interface and get acquainted with some useful plugins.

9.2.1. basic Follow Along: The QuickMapServices Plugin

The QuickMapServices plugin is a simple and easy to use plugin that adds base maps to your QGIS project. It has many different options and settings, let’s start to explore some of its features.

  1. Start a new map and add the roads layer from the training_data Geopackage.

  2. Install the QuickMapServices plugin.

  3. Open the plugin’s search tab by clicking on Web ► QuickMapServices ► Search QMS. This option of the plugin allows you to filter the available base maps by the current extent of the map canvas.

  4. Click on the Filter by extent and you should see one service available.

  5. Click on the Add button next to the map to load it.

  6. The base map will be loaded and you will have a satellite background for the map.


The QuickMapServices plugin makes a lot of base maps available.

  1. Close the Search QMS panel we opened before

  2. Click again on Web ► QuickMapServices. The first menu lists different map providers with available maps:


But there is more.

If the default maps are not enough for you, you can add other map providers.

  1. Click on Web ► QuickMapServices ► Settings and go to the More services tab.

  2. Read carefully the message of this tab and if you agree click on the Get Contributed pack button.

If you now open the Web ► QuickMapServices menu you will see that more providers are available. Choose the one that best fits your needs!

9.2.2. basic Follow Along: The QuickOSM Plugin

With an incredible simple interface, the QuickOSM plugin allows you to download OpenStreetMap data.

  1. Start a new empty project and add the roads layer from the training_data GeoPackage.

  2. Install the QuickOSM plugin. The plugin adds two new buttons in the QGIS Toolbar and is accessible in the Vector ► QuickOSM menu.

  3. Open the QuickOSM dialog. The plugin has many different tabs: we will use the Quick Query one.

  4. You can download specific features by selecting a generic Key or be more specific and choose a specific Key and Value pair.


    if you are not familiar with the Key and Value system, click on the Help with key/value button. It will open a web page with a complete description of this concept of OpenStreetMap.

  5. Look for railway in the Key menu and let the Value be empty: so we are downloading all the railway features without specifying any values.

  6. Select Layer Extent in the next drop-down menu and choose roads.

  7. Click on the Run query button.


After some seconds the plugin will download all the features tagged in OpenStreetMap as railway and load them directly into the map.

Nothing more! All the layers are loaded in the legend and are shown in the map canvas.



QuickOSM creates temporary layer when downloading the data. If you want to save them permanently, click on the indicatorMemory icon next to the layer and choose the options you prefer. Alternatively you can open the Advanced menu in QuickOSM and choose where to save the data in the Directory menu.

9.2.3. hard Follow Along: The QuickOSM Query engine

The quickest way to download data from QuickOSM plugin is using the Quick query tab and set some small parameters. But if you need some more specific data?

If you are an OpenStreetMap query master you can use QuickOSM plugin also with your personal queries.

QuickOSM has an incredible data parser that, together with the amazing query engine of Overpass, lets you download data with your specific needs.

For example: we want to download the mountain peaks that belongs into a specific mountain area known as Dolomites.

You cannot achieve this task with the Quick query tab, you have to be more specific and write your own query. Let’s try to do this.

  1. Start a new project.

  2. Open the QuickOSM plugin and click on the Query tab.

  3. Copy and paste the following code into the query canvas:

    This shows all mountains (peaks) in the Dolomites.
    You may want to use the "zoom onto data" button. =>
    <osm-script output="json">
    <!-- search the area of the Dolomites -->
    <query type="area">
      <has-kv k="place" v="region"/>
      <has-kv k="region:type" v="mountain_area"/>
      <has-kv k="name:en" v="Dolomites"/>
    <print mode="body" order="quadtile"/>
    <!-- get all peaks in the area -->
    <query type="node">
      <has-kv k="natural" v="peak"/>
    <print mode="body" order="quadtile"/>
    <!-- additionally, show the outline of the area -->
    <query type="relation">
      <has-kv k="place" v="region"/>
      <has-kv k="region:type" v="mountain_area"/>
      <has-kv k="name:en" v="Dolomites"/>
    <print mode="body" order="quadtile"/>
    <recurse type="down"/>
    <print mode="skeleton" order="quadtile"/>


    This query is written in a xml like language. If you are more used to the Overpass QL you can write the query in this language.

  4. And click on Run Query:


The mountain peaks layer will be downloaded and shown in QGIS:


You can write complex queries using the Overpass Query language. Take a look at some example and try to explore the query language.

9.2.4. basic Follow Along: The DataPlotly Plugin

The DataPlotly plugin allows you to create D3 plots of vector attributes data thanks to the plotly library.

  1. Start a new project

  2. Load the sample_points layer from the exercise_data/plugins folder

  3. Install the plugin following the guidelines described in Follow Along: Installing New Plugins searching Data Plotly

  4. Open the plugin by clicking on the new icon in the toolbar or in the Plugins ► Data Plotly menu

In the following example we are creating a simple Scatter Plot of two fields of the sample_points layer. In the DataPlotly Panel:

  1. Choose sample_points in the Layer filter, cl for the X Field and mg for the Y Field:

  2. If you want you can change the colors, the marker type, the transparency and many other settings: try to change some parameters to create the plot below.

  3. Once you have set all the parameters, click on the Create Plot button to create the plot.

The plot is interactive: this means you can use all the upper buttons to resize, move, or zoom in/out the plot canvas. Moreover, each element of the plot is interactive: by clicking or selecting one or more point on the plot, the corresponding point(s) will be selected in the plot canvas.

You can save the plot as a png static image or as an html file by clicking on the saveMapAsImage or on the addHtml button in the lower right corner of the plot.

There is more. Sometimes it can be useful to have two (or more) plots showing different plot types with different variables on the same page. Let’s do this!

  1. Go back to the main plot settings tab by clicking on the symbology button in the upper left corner of the plugin panel

  2. Change the Plot Type to Box Plot

  3. Choose group as Grouping Field and ph as Y Field

  4. In the lower part of the panel, change the Type of Plot from SinglePlot to SubPlots and let the default option Plot in Rows selected.

  5. Once done click on the Create Plot button to draw the plot


Now both scatter plot and box plot are shown in the same plot page. You still have the chance to click on each plot item and select the corresponding features in the map canvas.


Each plot has its own manual page available in the helpContents tab. Try to explore all the plot types and see all the other settings available.

9.2.5. In Conclusion

There are many useful plugins available for QGIS. Using the built-in tools for installing and managing these plugins, you can find new plugins and make optimum use of them.

9.2.6. What’s Next?

Next we’ll look at how to use layers that are hosted on remote servers in real time.