QGIS 3.0 e le mappe di sfondo

Dalla versione 2.18 di QGIS è possibile utilizzare i Tile XYZ per inserire, nei nostri progetti, le mappe di sfondo come Google Satellite, Bing, OSM e tante altre (occhio alle licenze). Per le versioni 2.x di QGIS esistono due plugin che permettono di inserire mappe di sfondo, la più famosa è Open Layer Plugin che però ha dei problemi relativi alla stampa e Quick Map Services Plugin (QMS) quello attualmente più usato; in QGIS 3.0 il plugin QMS non è stato ancora sviluppato (porting), attulmente c’è una campagna per la raccolta fondi, ma nel frattempo come utilizzare le mappe di sfondo in QGIS 3.0?

Ecco uno script che risolve egregiamente il problema, script realizzato da: Klas Karlsson

come fare:
copiare lo script seguente (dopo aver cliccato su view raw, in basso a destra nel riquadro):


"""
This script should be run from the Python consol inside QGIS.
It adds online sources to the QGIS Browser.
Each source should contain a list with the folowing items (string type):
[sourcetype, title, authconfig, password, referer, url, username, zmax, zmin]
You can add or remove sources from the sources section of the code.
Script by Klas Karlsson
Sources from https://qms.nextgis.com/
Some services require you to supply your own API key for the services to work.
Licence GPL-3
Regarding the terms of use for these background maps YOU will need to verify that you
follow the individual EULA that comes with the different services,
Most likely they will restrict how you can use the data.
Example:
For Esri basemaps you will need a valid ArcGIS online subscription to use the maps.
"""
# Sources
sources = []
sources.append(["connections-xyz","Google Maps","","","","https://mt1.google.com/vt/lyrs=m&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D","","19","0"])
sources.append(["connections-xyz","Google Satellite", "", "", "", "https://mt1.google.com/vt/lyrs=s&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D", "", "19", "0"])
sources.append(["connections-xyz","Google Terrain", "", "", "", "https://mt1.google.com/vt/lyrs=t&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D", "", "19", "0"])
sources.append(["connections-xyz","Google Terrain Hybrid", "", "", "", "https://mt1.google.com/vt/lyrs=p&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D", "", "19", "0"])
sources.append(["connections-xyz","Google Satellite Hybrid", "", "", "", "https://mt1.google.com/vt/lyrs=y&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D", "", "19", "0"])
sources.append(["connections-xyz","Stamen Terrain", "", "", "Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL", "http://tile.stamen.com/terrain/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "20", "0"])
sources.append(["connections-xyz","Stamen Toner", "", "", "Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL", "http://tile.stamen.com/toner/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "20", "0"])
sources.append(["connections-xyz","Stamen Toner Light", "", "", "Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL", "http://tile.stamen.com/toner-lite/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "20", "0"])
sources.append(["connections-xyz","Stamen Watercolor", "", "", "Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL", "http://tile.stamen.com/watercolor/%7Bz%7D/%7Bx%7D/%7By%7D.jpg", "", "18", "0"])
sources.append(["connections-xyz","Wikimedia Map", "", "", "OpenStreetMap contributors, under ODbL", "https://maps.wikimedia.org/osm-intl/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "20", "1"])
sources.append(["connections-xyz","Wikimedia Hike Bike Map", "", "", "OpenStreetMap contributors, under ODbL", "http://tiles.wmflabs.org/hikebike/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "17", "1"])
sources.append(["connections-xyz","Esri Boundaries Places", "", "", "Requires ArcGIS Onlinesubscription", "https://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","Esri Gray (dark)", "", "", "Requires ArcGIS Onlinesubscription", "http://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "16", "0"])
sources.append(["connections-xyz","Esri Gray (light)", "", "", "Requires ArcGIS Onlinesubscription", "http://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "16", "0"])
sources.append(["connections-xyz","Esri National Geographic", "", "", "Requires ArcGIS Onlinesubscription", "http://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "12", "0"])
sources.append(["connections-xyz","Esri Ocean", "", "", "Requires ArcGIS Onlinesubscription", "https://services.arcgisonline.com/ArcGIS/rest/services/Ocean/World_Ocean_Base/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "10", "0"])
sources.append(["connections-xyz","Esri Satellite", "", "", "Requires ArcGIS Onlinesubscription", "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "17", "0"])
sources.append(["connections-xyz","Esri Standard", "", "", "Requires ArcGIS Onlinesubscription", "https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "17", "0"])
sources.append(["connections-xyz","Esri Terrain", "", "", "Requires ArcGIS Onlinesubscription", "https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "13", "0"])
sources.append(["connections-xyz","Esri Transportation", "", "", "Requires ArcGIS Onlinesubscription", "https://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Transportation/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","Esri Topo World", "", "", "Requires ArcGIS Onlinesubscription", "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","OpenStreetMap Standard", "", "", "OpenStreetMap contributors, under ODbL", "http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "19", "0"])
sources.append(["connections-xyz","OpenStreetMap H.O.T.", "", "", "OpenStreetMap contributors, under ODbL", "http://tile.openstreetmap.fr/hot/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "19", "0"])
sources.append(["connections-xyz","OpenStreetMap Monochrome", "", "", "OpenStreetMap contributors, under ODbL", "http://tiles.wmflabs.org/bw-mapnik/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "19", "0"])
sources.append(["connections-xyz","OpenTopoMap", "", "", "Kartendaten: © OpenStreetMap-Mitwirkende, SRTM | Kartendarstellung: © OpenTopoMap (CC-BY-SA)", "https://tile.opentopomap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "17", "1"])
sources.append(["connections-xyz","Strava All", "", "", "OpenStreetMap contributors, under ODbL", "https://heatmap-external-b.strava.com/tiles/all/bluered/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "15", "0"])
sources.append(["connections-xyz","Strava Run", "", "", "OpenStreetMap contributors, under ODbL", "https://heatmap-external-b.strava.com/tiles/run/bluered/%7Bz%7D/%7Bx%7D/%7By%7D.png?v=19", "", "15", "0"])
sources.append(["connections-xyz","Open Weather Map Temperature", "", "", "Map tiles by OpenWeatherMap, under CC BY-SA 4.0", "http://tile.openweathermap.org/map/temp_new/%7Bz%7D/%7Bx%7D/%7By%7D.png?APPID={your_API_key}", "", "19", "0"])
sources.append(["connections-xyz","Open Weather Map Clouds", "", "", "Map tiles by OpenWeatherMap, under CC BY-SA 4.0", "http://tile.openweathermap.org/map/clouds_new/%7Bz%7D/%7Bx%7D/%7By%7D.png?APPID={your_API_key}", "", "19", "0"])
sources.append(["connections-xyz","Open Weather Map Wind Speed", "", "", "Map tiles by OpenWeatherMap, under CC BY-SA 4.0", "http://tile.openweathermap.org/map/wind_new/%7Bz%7D/%7Bx%7D/%7By%7D.png?APPID={your_API_key}", "", "19", "0"])
sources.append(["connections-xyz","CartoDb Dark Matter", "", "", "Map tiles by CartoDB, under CC BY 3.0. Data by OpenStreetMap, under ODbL.", "http://basemaps.cartocdn.com/dark_all/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "20", "0"])
sources.append(["connections-xyz","CartoDb Positron", "", "", "Map tiles by CartoDB, under CC BY 3.0. Data by OpenStreetMap, under ODbL.", "http://basemaps.cartocdn.com/light_all/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "20", "0"])
sources.append(["connections-xyz","Bing VirtualEarth", "", "", "", "http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1", "", "19", "1"])
# Add sources to browser
for source in sources:
connectionType = source[0]
connectionName = source[1]
QSettings().setValue("qgis/%s/%s/authcfg" % (connectionType, connectionName), source[2])
QSettings().setValue("qgis/%s/%s/password" % (connectionType, connectionName), source[3])
QSettings().setValue("qgis/%s/%s/referer" % (connectionType, connectionName), source[4])
QSettings().setValue("qgis/%s/%s/url" % (connectionType, connectionName), source[5])
QSettings().setValue("qgis/%s/%s/username" % (connectionType, connectionName), source[6])
QSettings().setValue("qgis/%s/%s/zmax" % (connectionType, connectionName), source[7])
QSettings().setValue("qgis/%s/%s/zmin" % (connectionType, connectionName), source[8])
# Update GUI
iface.reloadConnections()

view raw

tileXYZ.py

hosted with ❤ by GitHub

avviare QGIS 3.0, aprite la console di Python (Ctrl+Alt+P)

Schermata da 2018-03-11 13-14-45
console di Python

incollare lo script subito dopo >>> dove lampeggia il focus;

fatto, Python farà tutto il lavoro sporco per noi, aggiungerà 33 tile XYZ come da immagine di sotto:

Schermata da 2018-03-11 13-18-33
QGIS 3.0 e OSM

ciao e W QGIS!!!


PER CHI AVESSE PROBLEMI O ERRORI DURANTE L’INSTALLAZIONE:

Tasto destro del mouse su XYZTiles e incollare il file presente qui


VIDEO:

raccolta fondi terminata,  a breve ci sarà il plugin QMS anche in QGIS 3.0!!!

Schermata da 2018-03-14 21-17-58

Plugin QMS è disponibile da oggi (27/03/2018)
http://nextgis.com/blog/qms-qgis3/

—-

EDIT: se il blog post vi è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!

EDIT2: se il post vi è stato utile contribuite a mantenerlo aggiornato PayPal

Seguimi su Telegram: https://t.me/pigrecoinfinito

58 pensieri su “QGIS 3.0 e le mappe di sfondo

  1. Bellissimo lo script, si potrebbe quasi quasi dire “bye bye QMS!”.
    Ho provato ad importarlo anche per la 2.18.x ma non funziona,
    penso che sia scritto solo per la versione del Python 3.

    Piace a 1 persona

  2. Ho qualche problema a gestire lo script….mi sa che il mio ente e’ dietro un proxy server ed e’ quello che impedisce il caricamento delle immagini…puo’ essere ?? saluti e grazie

    Piace a 1 persona

  3. Grazie per il video.
    Volevo però chiederti… una volta caricata la basemap (es. Google Satellite),
    come faccio ad avere info sul dato specifico (es. Data di Acquisizione, Satellite)
    Grazie mille

    "Mi piace"

      1. Infatti,
        la differenza tra QGIS 2.x e 3.x sta proprio in python: non credo sia sufficiente aggiungere una riga o toglierne un altra.
        Poi, hanno fatto il porting del plugin QuickMapServices che è la stessa cosa.

        grazie e ciao

        "Mi piace"

  4. Scrivo per la prima volta e ti faccio i complimenti per la chiarezza. Sono io che invece ho ancora poco chiara la relazione tra gli openlayer e i normali servizi wms. Nel dettaglio sto facendo alcune prove con qgiscloud, ma riesco a caricare per il momento solo gli openlayer dispnibili. Io avrei bisogno invece di caricare una carta di maggior dettaglio, appunto disponibile su wms. Esiste che tu sappia una possibilità?
    Ringrazio e saluto
    Federico Lazzaroni

    Piace a 1 persona

      1. Magari è un’eresia, ma è possibile trasformare un servizio wms già diponibile in rete in un openlayer così da poterlo sfruttare come sfondo al posto di quelli disponibili??
        Grazie e saluti
        Federico

        Piace a 1 persona

      2. Ciao,
        il plugin QGISCloud e quindi lo spazio che mette a disposizione è limitato e quindi probabilmente non accetta altri wms se non quelli di openlayer.

        "Mi piace"

  5. Ti ringrazio, Speravo che essendo un servizio già a disposizione in rete non fosse considerato nello spazio dei 50 mega. Se io lo salvo il link wms nel progetto Qgis da pubblicare, mi carica soltanto i dati vettoriali che trasferisce nel cloud dei 50mega. Il wms proprio non lo considera.
    Grazie di nuovo e saluti
    Federico

    Piace a 1 persona

  6. buonasera, ho aggiornato a qgis 10.12 (Bucureśti). Possibile che non riesca ad aggiungere le basi XYZ dalla consolle? mi da una serie di errori <>… Qualcuno conosce una soluzione, grazie.

    P.S.: fino alla versione 10.10 sempre utilizzate grazia a questo post!

    Piace a 1 persona

  7. grazie per la risposta. QMS funzionava ma ha solo una parte delle mappe. Sono riuscito a risolvere esportando l’elenco da un altro pc e importandolo nel mio. Dalla console Python mi dava un errore.

    Piace a 1 persona

  8. Buongiorno, dopo aver importato le mappe Google, l’immagine non è perfettamente perpendicolare, ma sembra avere un angolo, come se fosse tridimensionale. Come posso fare per avere un immagine perpendicolare? Grazie!

    "Mi piace"

  9. Ciao e innanzitutto grazie per il video, davvero utile.
    Io sto con la ver. 3.36.1-Maidenhead ma non trovo tra i plugin il “Georeferenziatore GDAL (integrato)”..
    Che fine ha fatto?
    Grazie per il preziosissimo lavoro che avete fatto con QGIS.

    Fabrizio

    "Mi piace"

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.