[GIS] High resolution, printable alternative to OpenLayers plugin for QGIS

qgisqgis-openlayers-plugin

Are there any alternatives to OpenLayers plugin to have Google / Bing maps for QGIS projects?

I need an high quality cartography (both aerial and street view) but OpenLayers plugin does not allow printing of these.

My configuration is:

  • QGIS 2.6.1
  • Windows 7 64-bit
  • OpenLayers version 1.3.5

Best Answer

Just add the BaseLayer as a RasterLayer.

<GDAL_WMS>

<!-- Data is subject to term of use detailed at http://code.google.com/intl/nl/apis/maps/terms.html and
     http://www.google.com/intl/en_ALL/help/terms_maps.html -->

    <Service name="TMS">
        <!-- <ServerUrl>http://mt.google.com/vt/lyrs=m&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Map -->
         <ServerUrl>http://mt.google.com/vt/lyrs=s&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Satellite -->
        <!-- <ServerUrl>http://mt.google.com/vt/lyrs=y&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Hybrid -->
        <!-- <ServerUrl>http://mt.google.com/vt/lyrs=t&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Terrain -->
        <!-- <ServerUrl>http://mt.google.com/vt/lyrs=p&amp;x=${x}&amp;y=${y}&amp;z=${z}</ServerUrl> --> <!-- Terrain, Streets and Water  -->
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>20</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:900913</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <MaxConnections>5</MaxConnections>
    <Cache />
</GDAL_WMS>

Save this part as a xml-file (or download and adapt following file: http://www.gdal.org/frmt_wms_googlemaps_tms.xml )

Then add the Layer like a normal Rasterlayer:

enter image description here

But i would doublecheck if there are any copyright restrictions: http://www.google.com/intl/en_ALL/help/terms_maps.html

(source of the xml-file: post from Timur Girgin on http://hub.qgis.org/issues/6822 )

Addition: as Answer to the question if it's also possible to load OSM this way:

<GDAL_WMS>
 <Service name="TMS">
 <ServerUrl>http://tile.openstreetmap.org/${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>

And ArcGIS:

<GDAL_WMS>
    <Service name="TMS">
        <ServerUrl>http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/${z}/${y}/${x}</ServerUrl>>
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>17</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:3857</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <MaxConnections>10</MaxConnections>
    <Cache />
</GDAL_WMS>

and one more for imagery

<GDAL_WMS>
    <Service name="TMS">
        <ServerUrl>http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/${z}/${y}/${x}</ServerUrl>>
    </Service>
    <DataWindow>
        <UpperLeftX>-20037508.34</UpperLeftX>
        <UpperLeftY>20037508.34</UpperLeftY>
        <LowerRightX>20037508.34</LowerRightX>
        <LowerRightY>-20037508.34</LowerRightY>
        <TileLevel>17</TileLevel>
        <TileCountX>1</TileCountX>
        <TileCountY>1</TileCountY>
        <YOrigin>top</YOrigin>
    </DataWindow>
    <Projection>EPSG:3857</Projection>
    <BlockSizeX>256</BlockSizeX>
    <BlockSizeY>256</BlockSizeY>
    <BandsCount>3</BandsCount>
    <MaxConnections>10</MaxConnections>
    <Cache />
</GDAL_WMS>

SOURCE: http://www.gdal.org/frmt_wms.html

As mentioned above this is only the technical aspect. Concerning restrictions have a look at the Terms of use of the chosen basemap provider.

Edit1: Just answered a Question about how to use HERE Tiles in QGIS. These example you will find here: HERE background maps in QGIS possible?

Related Question