💬 Comunica Immediatamente

Contattami su Telegram

Compila il modulo e inizia a chiacchierare

Email non valida
Messaggio obbligatorio
Devi accettare il trattamento dati
✅ Messaggio Ricevuto!
Sarino Alfonso Grande sta rispondendo...

Python Code al servizio di GIS | SinoCloud

Python Code al servizio di GIS

Creare Mappe Interattive e PDF di Percorsi con Folium, OpenRouteService e Google Maps

Introduzione

Le mappe digitali sono strumenti essenziali per una vasta gamma di applicazioni, dalla semplice navigazione alla gestione avanzata della logistica. Folium, OpenRouteService (ORS) e Google Maps sono tra i più popolari e potenti strumenti di mapping disponibili oggi. In questo articolo esploreremo queste tecnologie e mostreremo come utilizzarle insieme per creare una mappa interattiva e un PDF con indicazioni stradali utilizzando Python. Scopriamo insieme come integrarle nei propri sistemi WebGIS.

Folium

Folium è una libreria di Python che permette di visualizzare dati geospaziali su mappe interattive. Sviluppata sopra la libreria JavaScript Leaflet, Folium semplifica la creazione di mappe ricche di funzionalità direttamente da Python. È possibile aggiungere marker, poligoni, polilinee e molto altro, tutto con poche righe di codice.

Caratteristiche di Folium

  • Facilità di Uso: Grazie alla sua interfaccia semplice e intuitiva, anche i principianti possono creare mappe complesse.

  • Integrazione con Pandas: Folium supporta direttamente i dataframe di Pandas, rendendo facile visualizzare dati geospaziali strutturati.

  • Supporto per Plugin: È possibile estendere le funzionalità di Folium utilizzando i numerosi plugin disponibili per Leaflet.

  • Salvataggio e Condivisione: Le mappe create con Folium possono essere salvate come file HTML, facilitando la condivisione e l'integrazione in siti web.

OpenRouteService (ORS)

OpenRouteService è un servizio di routing open-source che utilizza i dati di OpenStreetMap. Offre una vasta gamma di API per calcolare percorsi, distanze e tempi di viaggio. Le API di ORS sono potenti strumenti per chiunque desideri integrare funzionalità di routing nelle proprie applicazioni.

Caratteristiche di OpenRouteService

  • Percorsi Multipli: Calcola percorsi per diverse modalità di trasporto, inclusi auto, biciclette e pedoni.

  • Dettagli Completi: Fornisce indicazioni stradali dettagliate, distanze e tempi di viaggio.

  • Integrazione Facile: Le API RESTful di ORS sono facili da integrare in applicazioni esistenti.

  • Economico: Essendo open-source, è un'alternativa più economica rispetto a servizi commerciali come Google Maps.

Google Maps

Google Maps è uno dei servizi di mapping più conosciuti al mondo. Offre mappe dettagliate, immagini satellitari, panorami a 360° e funzionalità di routing avanzate. Le sue API sono ampiamente utilizzate per integrare mappe e funzionalità di navigazione in una vasta gamma di applicazioni.

Caratteristiche di Google Maps

  • Mappe Dettagliate: Mappe precise e aggiornate con informazioni dettagliate su strade, edifici e punti di interesse.

  • Street View: Visualizzazioni a 360° di strade e località in tutto il mondo.

  • API Potenti: Le API di Google Maps offrono funzionalità avanzate per geocoding, direzioni, distanza e molto altro.

  • Affidabilità: Essendo un prodotto di Google, offre una grande affidabilità e supporto tecnico.

Descrizione del Progetto

Per realizzare questo progetto, ho utilizzato Folium per creare una mappa interattiva, OpenRouteService per ottenere le indicazioni stradali e FPDF per generare un PDF. Ecco un riassunto dei passaggi principali:

  1. Ottenere l'API Key: Per utilizzare le API di OpenRouteService, è necessario registrarsi sul sito ufficiale di ORS e ottenere una chiave API. Questa chiave è necessaria per autenticare le richieste alle API.

  2. Geocoding con OpenRouteService: Utilizzando l'API di geocoding di ORS, ho ottenuto le coordinate geografiche delle città di origine e destinazione.

  3. Calcolo del Percorso: Con le coordinate ottenute, ho utilizzato l'API di routing di ORS per calcolare il percorso tra le due città e ottenere le indicazioni stradali dettagliate.

  4. Creazione della Mappa: Con Folium, ho creato una mappa interattiva che mostra il percorso calcolato, con marker per le città di origine e destinazione e una polilinea che rappresenta il percorso.

  5. Generazione del PDF: Utilizzando FPDF, ho generato un PDF che include la mappa e le indicazioni stradali.

Interfaccia Grafica

Per rendere il tutto più user-friendly, ho creato un'interfaccia grafica semplice utilizzando Tkinter, che permette all'utente di inserire le città di origine e destinazione e di generare il PDF cliccando su un pulsante. Ecco uno screenshot dell'interfaccia grafica:

L'interfaccia è composta da:

  • Due campi di input (Origin City e Destination City) per le città di origine e destinazione.

  • In Input box per inserire la chiave API KEY del serivizo OSR

  • Un pulsante per generare la mappa e il PDF.

Il risultato è un file pdf, cosi composto :

Il contenuto del pdf ovviamente modificando il codice in maniera opportuna può essere ulteriormente stilizzato e adattato alla proprie esigenze


Naturalmente, nulla impedisce di generare direttamente shapefile utilizzabili nei software GIS. Questo può essere realizzato inserendo una colonna di descrizione in cui vengono memorizzate le istruzioni di navigazione. Per quanto riguarda la geometria, è sufficiente convertire i dati di input forniti per le città di partenza e di arrivo.

Le istruzioni fornite dal servizio OpenRouteService (ORS) sono in inglese, pertanto le descrizioni per la navigazione saranno anch'esse in inglese. Per generare uno shapefile a partire dai dati elaborati, sono necessari i seguenti passaggi e strumenti:

Strumenti Necessari

  1. Libreria shapefile di Python: Utilizzata per la creazione e manipolazione di shapefile.

  2. Folium: Per visualizzare i dati geospaziali su mappe interattive.

  3. OpenRouteService (ORS): Per ottenere le coordinate geografiche e le indicazioni stradali.

Passaggi per Generare uno Shapefile

  1. Ottenere le Coordinate: Utilizzare l'API di geocoding di ORS per ottenere le coordinate geografiche delle città di partenza e di arrivo.

  2. Calcolare il Percorso: Utilizzare l'API di routing di ORS per calcolare il percorso tra le due città.

  3. Creare la Geometria: Convertire le coordinate del percorso in una geometria utilizzabile nei GIS.

  4. Aggiungere le Descrizioni: Inserire una colonna di descrizione con le istruzioni di navigazione in inglese.

  5. Generare lo Shapefile: Utilizzare la libreria shapefile di Python per creare lo shapefile con le geometrie e le descrizioni.

Area Assistenza Prenota