Categories
Idee e progetti

geoBlog WordPress – Geospatial CMS

geoblog <-blòġ> s. m. – Pratica web che integra una mappa con un blog, soluzione che permette di pubblicare materiali georeferenziati. Da Treccani.it

Qualcosa di più tecnico …

Un Geospatial Content Management System (GeoCMS) è un gestore dei contenuti (CMS) dove gli oggetti, quali utenti, immagini, articoli, blog, possono avere una posizione geografica (latitudine e longitudine) ed essere mostrati su una carta geografica interattiva. Inoltre le mappe contengono collegamenti a pagine di informazioni, essenzialmente pagine wiki, dei dati rappresentati. Da Wikipedia, l’enciclopedia libera.

Caratteristiche di un geoBlog WordPress

Capacità di gestire location

Gestire a livello di struttura le coordinate geografiche è una operazione <code> che richiede o un plugin dedicato o la modifica del codice. Fortunatamente il sito/enciclopedia codex.wordpress è una risorsa molto ben curata. Prima di iniziare ogni modifica, creare un tema child.

Modifica punti, linee e poligoni

Per i punti, essendo una semplice coppia di coordinate, senza schemi di relazioni con … altri punti … risulta immediato aggiungerli, ad esempio in un custom_field, così anche la modifica. In modo diverso, vanno trattati linee e poligoni. MySQL gestisce da qualche versione il tipo “geometry” come field, ma preferisco scegliere il “formato di interscambio dei dati” JSON (meglio geoJSON), che può essere trattato come un file di testo. Ciò che serve è avere una mappa su cui disegnare: LeafletJS o OpenLayers.

Numero di location per contenuto

Si può scegliere di creare geometrie multiple oppure di creare delle relazioni. Ad esempio il Comune A, può contenere il POI-1, il POI-3 e il POI-4 e questi sono associati al Comune A tramite un campo “padre”, in cui viene registrato l’ID del Comune A. Se ad esempio una strada statale attraversa più comuni o si sceglie di interromperla al confine, oppure nel campo “padre” si crea un array, per inserire molteplici ID Comune.

Mappe per contenuti

Parlare di Google Maps, OpenStreetMap e LeafletJS e dire che sono la stessa cosa, è un grosso errore sostanziale. OpenStreetMap è una cartografia che offre un servizio web che può essere caricata attraverso opportune librerie (script) su una pagina web. LeafletJS è una libreria Javascript che permette di caricare anche sevizi web, come OpenStreetMap o i WMS. GoogleMap è entrambi: sia una libreria per caricare le mappe in una pagina web, sia una cartografia che si può richiamare tramite il servizio che offre, ad esempio in LeafletJS.

In un geoBlog WordPress, possono essere gestite le varie cartografie, come base dove caricare i contenuti del Blog, facendo anche delle analisi spaziali, nei limiti offerti da ciascuna libreria

  • servizi web cartografici: Google Maps, Yahoo Maps, Bing Maps, OpenStreetMap, WMS, WCS, …
  • librerie per caricare cartografia sul web: LeafletJS, Google Maps, OpenLayers, MapBox, TurfJS …
  • formati di dati: json, geojson, xml, kml, gpx, tsv, csv, …

Geocoding e routing

Per avere questi servizi sul proprio geoBlog, è necessario integrare le librerie come:

  • geocoding: Google Maps, GeoNames, Nominatim, Maporama Maps, Mapstraction, Yahoo, …
  • routing: Google Maps, YOURS, GraphHopper, …

Database spaziali

I principali database sono PostGIS/Postgres, MySQL e Spatialite/SQLite. Il (geo)database per eccellenza è PostGIS, ma purtroppo non sono così diffusi gli hosting web che offrono questo servizio, il che porta a dover scegliere una soluzione con server dedicato. È interessante l’utilizzo di Spatialite (in fase di test); MySQL, che va molto d’accordo con WordPress, è il candidato prescelto. Attualmente le funzioni “geometriche” sono ancora limitate, ma nella versione 5.7 ci sono delle ottime novità a riguardo. MySQL rimarrà ancora per molto inferiore alle funzionalità offerte da PostGIS, ma nella maggior parte dei casi, la differenza non si nota.

Geographic Features Styling

Una mappa online, può restituire molte informazioni, ma se è graficamente poco attraente e chiara, scoraggia il visitatore. Vorrei concentrarmi sulla libreria LeafletJS, che conosco meglio e forse è anche quella che offre un rapporto qualità/tempo-impiegato milgiore.

Oltre alla cartografia di base (vedi LeafletJS providers) un “contenitore” della mappa può essere molto custom:

  • i pulsanti, le legende, lo switch dei layer, la scala, detti anche controls, sono molti e si possono integrare nella mappa semplicemente attivandoli. dare uno stile diverso a questi controlli è possibile, ma piuttosto dispendioso e serve una buona conoscenza del linguaggio css.
  • i popup, sono il punto forte e per questo possono essere molto sviluppati; essendo dei piccoli contenitori di “html” (anche se generati dinamicamente) danno molta libertà al contenuto; un intero articolo può essere visualizzato all’interno del popup, quando viene attivato dal click col mouse o a richiesta in determinate visualizzazioni; i popup possono invadere (graficamente) lo schermo con la funzionalità detta Modal oppure generare una sidebar laterale dove visualizzare il contenuto e permettere di continuare a navigare sul prossimo POI;
  • campiture, dash, cluster, heatmap, retini SVG e le meravigliose icone sono le variabili più apprezzate nella grafica di mappe … scriverò un articolo dedicato.

Linguaggi di programmazione

MySQL, PHP, Javascript, jQuery, css, html5


 

geoBlog WordPress - Geospatial CMS

(mockup GUI di WordPress)

 

By pjhooker

Tutti mi chiamano "uomo del gis" ... i software così detti GIS (Geographic information system) hanno accompagnato il mio percorso di studi universitario, fin dalle prime elaborazioni, quando mi fecero calcolare la lunghezza di una pista ciclabile e l'area di un bosco ... per un po' di mesi, mi chiedevo perché non mi facevano usare il mio amato AutoCad, visto che lo usavo già da 3-4 anni ... ma poi ho capito la differenza ... e tutto cambiò!

1 reply on “geoBlog WordPress – Geospatial CMS”

Leave a Reply

Your email address will not be published. Required fields are marked *