As I explained in a comment on my previous article, the otherwise fantastic OpenLayers plugin is currently not compatible with the freshly released QGIS 2.4 unfortunately. This means two things:
- You can’t open any
QGS
project files that contain a reference to such an OpenLayers base map. - You can’t use it to insert OpenLayers base maps (e.g. OSM, Google, Bing, Stamen, Yahoo, …) into your new map projects anymore.
In my comment yesterday I already provided a small hack on how to solve problem number one, but let me repeat it here in a cleaner and easier to find environment:
You could either load the project in question on another machine in an older QGIS version, or manually edit the QPS
project file to remove the layer. Just make sure you don’t forget a single reference! In my case I had not only to remove the corresponding <legendlayer>
block in the <legend>
block, but also the corresponding <maplayer>
block in the <projectlayers>
block, and also the layercount
attribute in said <projectlayers>
block.
So now at least you can open and work with your old project files, but I’m sure just like me you still want to be able to use these base maps in your projects. So here’s a quick and dirty solution to the second problem:
Following the hints and information I found here, here, and especially here, I created an XML
file that allows me to load the tiles from the Stamen Toner map tile server as a raster layer in QGIS. The file looks like this:
<GDAL_WMS> <Service name="TMS"> <ServerUrl>http://b.tile.stamen.com/toner/${z}/${x}/${y}.png</ServerUrl> </Service> <DataWindow> <UpperLeftX>-20037508.34</UpperLeftX> <UpperLeftY>20037508.34</UpperLeftY> <LowerRightX>20037508.34</LowerRightX> <LowerRightY>-20037508.34</LowerRightY> <TileLevel>18</TileLevel> <TileCountX>1</TileCountX> <TileCountY>1</TileCountY> <YOrigin>top</YOrigin> </DataWindow> <Projection>EPSG:3857</Projection> <BlockSizeX>256</BlockSizeX> <BlockSizeY>256</BlockSizeY> <BandsCount>3</BandsCount> <Cache /> </GDAL_WMS>
Of course the most interesting lines are the ones highlighted above:
Line 3 sets the URL for where the map tiles can be found. As you can see, here I referenced the Stamen Toner map, but you can easily replace the URL with the TMS server you’re interested in. You can find the necessary information on most map tile provider’s websites.
Line 15 sets the projection for the map tiles. In most cases this should be either EPSG 3857
or 900913
, which is an unofficial alias for 3857 (spelling GOOGLE in quasi-leetspeak).
And there you go: Stamen Toner map tiles in QGIS 2.4! Obviously I will update this article once the great OpenLayers plugin becomes compatible with QGIS 2.4. There seems to be an update already looming in the GitHub repo… UPDATE: As of today (July 8th, 2014) the OpenLayers plugin has been updated to work in QGIS 2.4! Big thanks have to go out to Pirmin Kalberer, the plugin author, and all supporters. Only one little caveat: Whereas in the past the OpenLayers plugin’s menu resided in the Plugins
menu, it now has a new home in the Web
menu.
Thank you for your post, I just couldn’t find the new location of openstreetmap plugin !!
Cheers,
Anne
Hi Anne
I have had the same [problem, but just worked through – I reinstalled the open layers plugin under the plugin menu and then it appeared in the dropbox under the web menu as it’s new location – openstreetmap is there.
Good luck – this one was a real pain so I’m glad it’s sorted :C)
Margs
Thank you for your post! My just starting to learn QGIS and I couldn’t find the openlayers plugin.
Best,
Don
You’re most welcome. It’s quite unintuitively placed there in the Web menu…
Hi,
Thank you! I couldn’t find where the new plugin was located. However, once I found it. I am still getting an error. I get an error with any of the OpenLayer styles. I am wondering if you happen to know what is going on. I am bookmarking this site. You explained and lot and I just found the site tonight.
Thank you!
Ashley
An error has occured while executing Python code:
Traceback (most recent call last):
File “/Users/ashleyhaynes/.qgis2/python/plugins/openlayers_plugin/weblayers/weblayer.py”, line 97, in addLayer
self._addLayerCallback(self)
File “/Users/ashleyhaynes/.qgis2/python/plugins/openlayers_plugin/openlayers_plugin.py”, line 135, in addLayer
self.setMapCrs(coordRefSys)
File “/Users/ashleyhaynes/.qgis2/python/plugins/openlayers_plugin/openlayers_plugin.py”, line 176, in setMapCrs
extMap = coodTrans.transform(extMap, QgsCoordinateTransform.ForwardTransform)
QgsCsException: forward transform of
(-146617.433350, 84491.070530)
PROJ.4: +proj=longlat +datum=WGS84 +no_defs +to +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs
Error: latitude or longitude exceeded limits
Python version:
2.7.1 (r271:86832, Jun 16 2011, 16:59:05)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)]
QGIS version:
2.4.0-Chugiak Chugiak,
I’m glad I could help. Does your problem still exist? Have you tried turning it off and on again…? (Sorry, uncalled-for IT Crowd reference.) In all seriousness, some people report that uninstalling and reinstalling plugins solves many Python-related issues. Let us know how it went!