qosm: Open Street Map tiles in QGIS

by on March 11, 2016

There was once a time in QGIS where getting Open Street Map basemaps was tricky. ArcGIS long since solved this problems with ready-made basemaps available with a few clicks, but in QGIS there was the OpenLayers plugin, which was a rough go to use. In the first GIS short course I taught, this was the only option, so over Christmas break I decided to write something better. The result is QOSM, although since writing it I’ve discovered that the QuickMapServices plugin, while much less searchable, is much more effective. Still the person in charge of the QGIS plugin repository let in the plugin saying it would help inspire improvement.

Adding a QOSM Layer

Adding a QOSM Layer

Still, I think my plugin does a few things better than QMS, but QMS really does everything I’d ever wanted a basemap plugin to do. The main difference is the cacheing – QOSM is designed to store tiles indefinitely and store a lot of them (it even has an option to cache everything for a whole area), whereas QMS is designed to download tiles on the fly (although you can change the global cacheing expiry time in QGIS main preferences to get QMS to cache things for longer).

QOSM will happily download any number of tiles for a given area.

QOSM will happily download any number of tiles for a given area.

The main benefit of writing QOSM was to get some insight into the QGIS plugin structure, which is quite powerful, if poorly documented. Plugins are written in Python (2), and allow easy creating of user interfaces using PyQt bindings for the Qt framework. The Python Console plugin allows users to easily run scripts that reference the QGIS Python interface, but plugins allow users to take control of the canavas, projects, loading layers, and even calling processing functions within the main user interface, and are distributed by the QGIS plugin repository. A manual of QGIS Python functionality is available on the QGIS website, as well as the API reference (the API reference is for the C++ classes, but calling these in Python works exactly the same in most cases).

So there you have it, it’s a little anti-climatic, but if you need to load a hillshade layer or cache an entire province worth of tiles or aerial imagery, QOSM is what you’re looking for.

A QOSM Tile Layer in QGIS

A QOSM Tile Layer in QGIS

The QOSM Settings dialog.

The QOSM Settings dialog.

Comments

Thank you for this plugin.
But I’m having trouble when using it.
every time I zoom in, I receive crash dumped error: minidump written to C
Sorry I’m a beginner to QGIS, would you please advise how to solve this issue?
Many thanks for your great efforts.

Leave a Reply

WP Facebook Like Send & Open Graph Meta powered by TutsKid.com.