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/
Licence GPL-3
"""
# 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","Mapbox Satellite", "", "", "https://www.mapbox.com/tos/", "http://tiles.mapbox.com/v4/openstreetmap.map-inh7ifmo/%7Bz%7D/%7Bx%7D/%7By%7D.png?access_token=pk.eyJ1Ijoib3BlbnN0cmVldG1hcCIsImEiOiJncjlmd0t3In0.DmZsIeOW-3x-C5eX-wAqTw", "", "19", "0"])
sources.append(["connections-xyz","Esri Boundaries Places", "", "", "", "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)", "", "", "", "http://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","Esri Gray (light)", "", "", "", "http://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","Esri National Geographic", "", "", "", "http://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","Esri Ocean", "", "", "", "https://services.arcgisonline.com/ArcGIS/rest/services/Ocean/World_Ocean_Base/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","Esri Satellite", "", "", "", "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "19", "0"])
sources.append(["connections-xyz","Esri Standard", "", "", "", "https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","Esri Terrain", "", "", "", "https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","Esri Transportation", "", "", "", "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 World Imagery", "", "", "https://wiki.openstreetmap.org/wiki/Esri", "https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "22", "0"])
sources.append(["connections-xyz","Esri Topo World", "", "", "", "http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/%7Bz%7D/%7By%7D/%7Bx%7D", "", "20", "0"])
sources.append(["connections-xyz","Open Street Map Standard", "", "", "OpenStreetMap contributors, CC-BY-SA", "http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "19", "0"])
sources.append(["connections-xyz","Open Street Map H.O.T.", "", "", "OpenStreetMap contributors, CC-BY-SA", "http://tile.openstreetmap.fr/hot/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "19", "0"])
sources.append(["connections-xyz","Open Street Map Monochrome", "", "", "OpenStreetMap contributors, CC-BY-SA", "http://tiles.wmflabs.org/bw-mapnik/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "19", "0"])
sources.append(["connections-xyz","Strava All", "", "", "OpenStreetMap contributors, CC-BY-SA", "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, CC-BY-SA", "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=1c3e4ef8e25596946ee1f3846b53218a", "", "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=ef3c5137f6c31db50c4c6f1ce4e7e9dd", "", "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=f9d0069aa69438d52276ae25c1ee9893", "", "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"])
# 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

51 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. 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"

  3. 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"

  4. 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

  5. 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

  6. 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

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

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