117

ArcGIS Desktop has the option of using basemaps from ArcGIS online.

Does QGIS have any such options?

108

Update 2015: A new plugin with even more background map options is QuickMapServices

Original: Use the OpenLayers plugin to get Google Maps, Bing, OSM or Yahoo background maps.

Note that these layers are NOT SUITABLE FOR PRINTING! (see open tickets in the answer to https://gis.stackexchange.com/a/42141/187)

enter image description here

  • Recommend editing to take XYZ tile services into account. tks :) – tony gil Nov 17 '18 at 9:53
94

No plugin required

There is a core functionality XYZ Tile Server provider which was implemented with some other nice UX enhancements for tiled services (available since QGIS 2.18). This means, that there is no need for an external plugin although for an easy setup you can still use external plugins (see bottom of this post) and it offers various improvements over pure plugin based solutions.

In the browser panel, locate the Tile Server entry and right click it to add a new service.

enter image description here

Enter the URL of the service which you would like to use, replacing x, y and z parts with curly brackets substitution as can be seen below.

enter image description here

Double Click the newly created entry to add the layer to the map.

Layers added this way:

  • Load faster
  • Support reprojection
  • Support printing
  • Are cached in a powerful way
  • Are compatible with QField

Some example URLs

OpenStreetMap

http://tile.openstreetmap.org/{z}/{x}/{y}.png

Google Hybrid

https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}

Google Satellite

https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}

Google Road

https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}

(Codes for other tile types from Google found here)

Bing Aerial

http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1

Configuration GUI

Since version 0.18.7 and in combination with QGIS >= 2.18.8 it's possible to use QuickMapServices as a very easy to use tool for configuring layers. Just check the "Use native renderer" checkbox (thanks @DmitryBaryshnikov)

  • 1
    These connection options should be added to the QGIS browser list by default. I think any GIS software should ship with basemap capabilities a click or two away. – Jwely Feb 11 at 21:37
47

Another plugin to add basemaps in QGIS - QuickMapServices:

enter image description here

QGIS Python Plugins Repository: https://plugins.qgis.org/plugins/quick_map_services/

More info about plugin:

  • I have QGIS 2.18.3 (Mac OS X) but I don't have an option to add XYZ Tiles. you sure all 2.18.x versions have XYZ Tiles? – RutgerH Jan 14 at 17:00
  • @RutgerH I'm using QGIS 3 (Mac OS X) and it has the XYZ Tiles option. – Blundering Ecologist Mar 5 at 20:47
5

If you're looking to add the ESRI basemaps to QGIS, follow the steps in this blogpost using the QGIS Python console:

Copy and paste this code into the QGIS Python Console:

Adds ESRI_Imagery_World_2D service:

qgis.utils.iface.addRasterLayer("http://server.arcgisonline.com/arcgis/rest/services/ESRI_Imagery_World_2D/MapServer?f=json&pretty=true","raster")

Adds ESRI World_Street_Map service:

qgis.utils.iface.addRasterLayer("https://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer?f=json&pretty=true","raster")

Then you can save these as QGIS Layer Definition Files and add them later to any project

And here's the REST endpoint of all the ArcGIS Online basemaps you can add using the above code:

https://services.arcgisonline.com/arcgis/rest/services

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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