OpenLayers è uno tra i plugin “indispensabili” per QGIS. Consente di integrare all’interno di un progetto QGIS come base cartografica Google Map, Bing Map e OpenStreetMap.
Questo significa che sarà possibile sovrapporre i nostri shape di progetto, ad esempio, ad un’immagine satellitare di qualunque località del globo terrestre fornita da Google Map. Chi lavora in progetti di analisi e pianificazione territoriale sa bene quanto questo strumento sia essenziale, soprattutto in casi in cui non siano disponibili dati cartografici alternativi.
Tutto molto bello, ma c’è un ma. L’estensione ha un comportamento anomalo in fase di stampa di un progetto: la sovrapposizione tra gli shape e l’ortofoto presenta degli errori piuttosto marcati.
Girovagando sulla rete ho visto che il problema è stato segnalato da numerosi utenti di QGIS, senza aver trovato una risposta soddisfacente. Dopo aver fatto diverse verifiche, ed essermi confrontato con i miei colleghi di U-Space, ho individuato il problema e una soluzione per aggirare in parte il problema, in attesa di un aggiornamento definitivo.
Un esempio concreto in QGIS
Per spiegare la questione prendo come esempio un progetto in cui è perimetrato il fosso che circonda la città di Palmanova. La versione di QGIS con cui è stato realizzato questo esempio è la 2.18.0; invece OpenLayers plugin è usato nella versione 1.4.1. Nell’immagine che segue si vede l’anteprima della tavola impaginata con il gestore di stampe.
Il progetto è in WGS84 / Pseudo Mercator (EPSG: 3857), lo shape è anch’esso disegnato nello stesso sistema di riferimento, quindi non ci sono incoerenze tra sistemi di riferimento differenti. L’anteprima non evidenzia problemi. La perimetrazione si sovrappone correttamente con la foto aerea. Sembrerebbe tutto in ordine. Se procediamo all’esportazione della tavola in formato pdf ecco il risultato:
Lo sfalsamento tra lo shape e l’ortofoto di Google Map è evidentissimo e assolutamente inaccettabile. Il difetto è riscontrabile anche lavorando con Bing Map. Sulla rete sono proposti alcuni suggerimenti piuttosto velleitari, come procedere a tentativi modificando la scala o la porzione di mappa inquadrata. Anche l’aggiornamento manuale del file javascript che gestisce OpenLayers è risultato inutile. Infine ho fatto diversi prove, modificando i sistemi di riferimento e disabilitando la riproiezione “al volo”, senza risultati positivi. L’errore persiste. Il problema sembra essere legato proprio al caricamento della cartografia all’interno del gestore di stampe.
La soluzione provvisoria
Lo sfalsamento in realtà è generato dal margine bianco lasciato intorno al frame della mappa. Se modifichiamo l’impaginato della tavola inquadrando l’ortofoto “al vivo” rispetto i margini del foglio, magicamente il problema sparisce!
Per qualche motivo è necessario che almeno i margini superiore e inferiore della mappa di OpenLayers siano coincidenti con i bordi del foglio. Maggiore è il margine bianco, maggiore sarà l’errore generato in fase di esportazione. Se per rispettabilissimi motivi dovessimo avere assoluta necessità di avere comunque dei margini bianchi saremmo obbligati ad utilizzare altri sistemi di impaginazione?
Per fortuna no, però dovremo inventarci dei sistemi per aggirare il problema sovrapponendo delle maschere bianche al frame di OpenLayers. Ecco la versione finale corretta:
Si tratta comunque di una soluzione temporanea di ripiego che complica il flusso di lavoro. Mi auguro che, nei futuri aggiornamenti di QGIS, vengano risolti definitivamente questi problemi che affliggono un plugin che rimane, tuttavia, utilissimo.
OpenLayers è uno dei plugin indispensabili di QGIS, nonostante dei problemi nella stampa ancora non del tutto risolvibili.
In: Laboratorio
Tags: Openlayers, QGIS
ottimo !!
mi hai risolto un bel problema che portavo avanti da un pezzo
Buonasera, non riesco a capire cosa si intende per inquadrare l’ortofoto “al vivo”… Potresti approfondire per favore?
Buongiorno, nel gergo grafico, si dice di un’immagine “al vivo” quando tocca i bordi del foglio senza avere margini bianchi.
Nel caso specifico, all’interno del compositore di stampe di QGis, significa far coincidere i bordi della mappa con i bordi del foglio.
Vedi immagine: