I am new to the Python console. How can I add a layer from the OpenLayers plugin from the Python console?

2 Answers 2


Renaud, there are a couple of ways to do this:

  1. Query QGIS's interface to find and trigger the appropriate menu action.
  2. Work directly with the already-loaded OpenLayers plugin.

Solution #1 is pretty straightforward. OpenLayers plugin offers a good solution to #2, which will help you understand working with other plugins as well. Here is how both are accomplished.

Trigger OpenLayers plugin menu action

layeract = 'Google Physical'
plugmenu = qgis.utils.iface.pluginMenu()
olmenu = False
for act in plugmenu.actions():
    if 'OpenLayers' in act.text():
        olmenu = act
if olmenu:
    for act in olmenu.menu().actions():
        if layeract in act.text():

Work directly with OpenLayers plugin

    olplugin = qgis.utils.plugins['openlayers']
    ol_gphyslayertype = olplugin.olLayerTypeRegistry.getById(0)
except KeyError:
    print 'OpenLayers plugin not loaded.'

This latter solution probably needs a little more explaining.

-> olplugin = qgis.utils.plugins['openlayers']

Get the OpenLayers plugin instance from qgis.utils's plugin registry.

-> ol_gphyslayertype = olplugin.olLayerTypeRegistry.getById(0)

Get the 'Google Physical' layer type object from OpenLayers's layer type registry. Open [path-to-user-plugins]/openlayers/openlayers_plugin.py and starting at line #111 you will see the order the layer types are assigned to the registry. They are given IDs starting with 0 (see rest of module for how that's done).

-> olplugin.addLayer(ol_gphyslayertype)

Loads the layer into QGIS's map canvas.

There may be other solutions as well, but those are the basics that I could find.

  • Thank you very much. I used the second option and it is working fine.python console seems very powerful !
    – Renaud
    Jun 11, 2012 at 8:35
  • Is there an updated solution now that OpenLayers appear under the Web submenu instead of Plugins?
    – Nyxynyx
    Oct 30, 2014 at 4:37

Since QGIS 2.4 Chugiak, the OpenLayers plugin has moved in the QGIS Gui to Web->OpenLayers plugin, hence the first method described above won't work anymore. I updated it to match the new menu structure, see my answer here.

Still, it would be interesting to know how to adapt the second method to QGIS 2.4 and above.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.