Archivio

Posts Tagged ‘MapBox’

Storytelling Author Mapillary BAsed (SAMBA): come è fatto “dentro”


In questo post vedo di fornire qualche dettaglio su quelle che sono le caratteristiche e soluzioni tecniche che stanno alla base di SAMBA, Storytelling Author Mapillary BAsed.

Schematicamente l’architettura della soluzione è la seguente:

architecture

L’applicazione è una tipica web mapping application realizzata in HTML / Javascript avvalendosi di una componente PHP 5 ospitata su web server Apache.

Per implementare le sue funzionalità utilizza una serie di librerie Javascript e di alcuni servizi e precisamente:

  • mapbox-gl-draw.js: fornisce il supporto per disegnare ed editare features su mappe basate su MapBox GL JS
  • Mapillary API: le API di accesso alle immagini e sequenze di Mapillary
  • MapBox Directions API: le API MapBox per il calcolo dei percorsi
  • MapBox GL Geocoder: il Geocoder per mappe basate su MapBox GL JS
  • Turf.JS: libreria Javascript realizzata da MapBox per il calcolo di funzioni geospaziali direttamente sul browser
  • il servizio (vector tiles), delle sequenze di Mapillary  pubblkicato su http://d25uarhxywzl1j.cloudfront.net/v0.1/{z}/{x}/{y}.mvt

Il codice dell’applicazione e’ disponibile su GitHub con licenza Licenza MIT Copyright (c) [2014].

Quattro milioni di verbali (open …) su una mappa


Tra i vari canali social che seguo ho trovato in questi giorni questo bel riferimento, il progetto Infrazioni  ….

infrazioni

… che usando dati i open delle infrazioni stradali della città di Torino ha realizzato una bella web gis application interattiva con cui si possono visualizzare ed interrogare i dati (potete divertirvi a cercare i luoghi, e i periodi, ove si registrano il maggiore o minore numero di infrazioni per tipologia ….diciamo che chi è di Torino intuisce rapidamente la natura dei due grossi cerchi in alto a sinistra ed in basso a destra della mappa …. 🙂 ).

Al netto dell’interfaccia  (realizzata con MapBox …), che è sicuramente curata, con buone prestazioni e di facile utilizzo, il grosso valore aggiunto è il riuso di dati aperti messi a disposizione da parte di una P.A., rappresentando una bella sinergia, un approccio “win-win” che sempre di più si spera di vedere.

I dati delle infrazioni infatti sono disponibili open data sul portale degli open data del Comune di Torino (e disponibili per più anni, dal 2011 al 2015 …), ma questo non è l’unico dataset utilizzato, in quanto i dati sono stati relazionati sul territorio utilizzando i dati della toponomastica comunale, anch’essi disponibili sul medesimo portale (a tale proposito, come elemento di miglioramento, si potrebbe suggerire al Comune di Torino di integrare già dalla fonte, vale a dire dalle generazione del dato delle infrazioni, la relazione spaziale, diretta o indiretta, con ìl numero civico o l’incrocio corrispondente usando la propria toponomatica al fine di rendere  così i dati relazionati strettamente ed in modo tra loro coerente. Credo che questo avrebbe fatto risparmiare parecchio tempo ai realizzatori del progetto …. se poi proprio volessimo esagerare, avere i medesimi dati disponibili come open services …. male non farebbe …).

E’ comunque un esempio “virtuoso” di collaborazione tra P.A e “privati /cittadini” che vale la pena di segnalare ed applaudire …. bravi tutti!

Un po’ di routing open source per tutti (QGIS & MapBox)


Negli ultimi giorni sembra che l’integrazione di soluzioni di routing open source in soluzioni GIS open source, sia desktop sia di web mapping, sia particolarmente di moda.

E’ stato infatti recentemente pubblicato un plugin (ancora sperimentale …..) di QGIS 2.0 per l’integrazione con pgRouting.

osm2po_route

Giusto per coglierne il senso …

  • pgRouting extends the PostGIS / PostgreSQL geospatial database to provide geospatial routing functionality. pgRouting is available under the GPLv2 license. Il prodotto è una delle migliori librerie open source (ma in alcuni casi anche migliore di prodotti equivalenti commerciali …), per il routing.
  • E’ possibile caricare i dati di OpenStreetMap e applicare su questi dati il routing
  • QGIS è il leader dei prodotti GIS Desktop open source  e quindi con questa estensione è possibile sia accedere alle funzioni di pgRouting sia usare, sul gis desktop stesso, le funzionalità di routing

Ovviamente, come tutte le cose open source, non è detto che sia tutto funzionante “out-of-the-box”, ma è sicuramente uno stack applicativo interessante e completamente open source (anche se non l’unico possibile su questa tematica). Il plugin è disponibile su GitHub.

Sul fronte web invece è ancora più recente la notizia che MapBox, nella realizzazione del bike route planner di Copenhagen, I Bike CPH, ha integrato il motore di routing open source OSRM di cui ho già avuto modo di parlare qui e qui.

BiciCopenhagen

Nel post sul blog di MapBox sono anche riportati alcuni dettagli tecnici che tra l’altro danno indicazioni su come fonti dati esterne alla consueta base dati OSM su cui si basa il motore di OSRM.

Tra le altre cose è da considerare che recentemente OSRM ha modificato la sua licenza passando dalla più restrittiva AGPL alla più permissiva BSD e possiamo dire che MapBox ha immediatamente colto l’opportunità offerta.

GIS in the Cloud: MapBox

27 agosto 2013 2 commenti

Sono oramai diverse, e con diversi livelli di maturità, le soluzioni GIS che si possono fruire in rete in modalità cloud based: possiamo citare, partendo da GeoCommons (poi GeoIQ), che forse è stata la prima degna di nota, ArcGIS Online, Mapbox, GISCloud, CartoDB, ecc ….

Si tratta di soluzioni di tipo SaaS o PaaS, a seconda se mettano a disposizione o meno il codice sorgente che ne permetta il riutilizzo e magari l’integrazione con altre soluzioni.

Le finalità e le funzionalità offerte sono ovviamente ampiamente sovrapposte ma ognuna si caratterizza per alcune peculiarità che le contraddistingue.

Volevo da tempo saperne qualcosa in più e approfondire un poco la conoscenza di questi strumenti che a volte, in particolare per esigenze entry level, possono anche rivelarsi utili per piccole soluzioni di web mapping (ma non solo …), senza necessità di ricorrrere a codice di personalizzazione.

Ovviamente nessuna pretesa di fare recensioni complete (se ne possono trovare di più autorevoli in rete ….), semmai una raccolta di appunti e considerazioni personali.

Il primo strumento a cui ho dato un’occhiata è MapBox. 

Ripredendo quanto riportato sul suo sito si tratta di “ … a platform for creating custom maps that fit your style, enhance user experiences, and visualize your data …. “: il suo core business è quindi quello di permettere di realizzare facilmente la pubblicazione dei propri dati georiferiti in mappe su sfondi predefiniti e personalizzabili.

Per poter usare il servizio è necessario creasi un proprio login dotato di username e password: il servizio free è limitato a 50 Mbyte come mappe o storage di dati (i dati come spiegato più avanti sono in realtà dei cataloghi di immagini georiferite in formato MBTiles), e 3 Map View da intendere come raccolta di map tiles.

Per esigenze superiori il servizio è a pagamento con dei piani predefiniti o personalizzabili.

MapBox mette a disposizione tre tipologie di sfondo cartografico su cui appoggiare i propri dati e precisamente:

  • MapBox Streets: una mappa mondiale realizzata sulla base die dati di OpenStreetMap e continuamente aggiornata (si parla di aggiornamenti ogni 5 minuti …..). La mappa è personalizzabile cambiando colore, mostrando o nascondendo dei livelli e anche configurando le etichette a seconda della lingua desiderata (supportati Inglese, Spagnolo e Francese, ma nulla vieta di estendere e personalizzare per la lingua scelta).

  • MapBox Terrain: una mappa mondiale che visualizza la conformità del terreno e l’uso del suolo. Sono visualizzate colline, curve di livello ed altri elementi morfologici. La mappa è personalizzabile cambiando colore, mostrando o nascondendo dei livelli

  • MapBox Satellite: una mappa mondiale di immagini ad alto dettaglio, frutto di un’elaborazione di diverse immagini sorgenti. La mappa è personalizzabile.

È comunque possibile aggiungere dei propri dati: in questo caso occorre considerare che in MapBox i dati devono essere presenti come cataloghi di tiles (MBTiles) e quindi, se si è in possesso di dati in formato diversi, questi prima devono essere trasformati utilizzando TileMill, installabile su Mac, Ubuntu e Windows.

I formati dati che TileMill supporta sono i seguenti:

  • CSV
  • ESRI shapefile
  • GeoJSON KML
  • GeoTIFF
  • SQLite
  • POSTGIS

 TileMill è basato su Mapnik, tool open source ampiamente utilizzato, ed utilizza per definire gli stili CartoCSS. E’ inoltre possibile utilizzare Maki, libreria open source di simboli.

Ecco una mappa di prova che ho realizzato

TerremotiMapBox

Una volta che è stata realizzata una mappa questa può essere pubblicata e condivisa in modalità diverse:

  • come immagine statica

  • in modalità embedded in una pagina HTML

  • in un iframe in una pagina HTML, sfruttando MapBox Javascript API

  • in un’app mobile IOS

  • integrata in strumenti social quali Facebook e Twitter

MapBoxPublish

L’utilizzo entry level dello strumento è quindi quello di tool di pubblicazione di informazioni georiferite in semplici mappe che a loro volta possono essere tuttavia essere integrate e riferite all’interno di soluzioni e contesti applicativi diversi usando soluzioni che MapBox mette a disposizione die propri utenti quali:

  • MapBox.js: un’API Javascript per permettere un web mapping che utilizzi mappe MapBox più facile e veloce. MapBox.js è un plugin di Leaflet e quindi in questo modo amplia le sue possibilità di utilizzo

  • iOS SDK: MapBox Mobile SDK è un toolkit open source completo per applicazioni dimapping iOS native

  • API Rest: per non essere egati a specifiche API client i srevizi MapBox sono accessibili attraverso semplici interfacce REST e con formati aperti quali JSON. Queste interfacce permettono un geocoding / reverse geocoding, l’aggiunta di marker sulla mappa e l’accesso diretto ai tiles delle mappe.

A livello di architettura della soluzione questa si basa su un’architettura scalabile e ridondata geograficamente ospitata su Amazon web services.

Da un punto di vista software e di standard è basato su Node.js e si basa su specifiche open a partire dalle specifiche per l’organizzazione dei tiles delle mappe (MBTiles), TileJSON, un formato standard per descrivere i vari aspetti di una mappa e realizzare un facile punto di accesso per le mappe stesse, SQLite, come database per mantenere le informazioni degli MBTiles e UTFGrid, un formato per dati interattivi che usano JSON. Per i dettagli http://www.mapbox.com/developers/guide/.

A livello generale per MapBox si può ancora dire che:

  • MapBox ha investito su OpenStreetMap tanto da sfruttare i dati della comunità open source per basare il suo livello streets di default. La sua presenza nella comunità si è ampliata nel tempo ed è diventata sempre più significativa sino ad arrivare alla realizzazione di un nuovo editor web per la comunità denominato ID Editor che proprio di recente, è diventato l’editor web di default per OSM in sostituzione di Potlach

  • è già stato annunciato un po di tempo fa MapBox Satellite Live, iniziativa per rendere disponibili agli utenti le immagini satellitari Landsat fornite da DigitalGlobe in tempi decisamente riidotti tanto da poter parlare di “near real time”. La notizia è di sicuro interesse ed impatto e l’annuncio dovrebbe essere imminente

In conclusione questa soluzione sembra essere di interesse per esigenze di pubbicazioni di dati georiferiti e quindi per soluzioni di web mapping.

Il suo supporto del formato MBTiles da un lato garantisce prestazioni e portabilità (la scelta di usare TileMill e quindi Mapnik e CartoCSS è ottima in tal senso), ma al tempo stesso non permette di rendere disponibili funzionalità più evolute (presenti in altre soluzioni analoghe …), quali funzionionalità di analisi spaziali che necessitano di pote trattare con dati tipicamente vettoriali.

Altro limite attuale è legato al fatto che per il mondo mobile viene offerto supporto solo per il mondo iOS mentre è escluso il mondo Android.

Ovviamente poi non si tratta di una soluzione open source per cui il codice sorgente non è reso disponibile in download o a contribuzione di una comunità, e anche qui soluzioni analoghe hanno preferito altre strade.

2013 OpenStreetMap Data Report


MapBox ha pubblicato il 2013 OpenStreetMap Data Report.

Un po di dati …

  • 33,968,739 km di strade
  • 78 milioni di buildings

Per le strade corrisponde a: 93.17 viaggi verso la Luna, 847.63 orbite della Terra, 40.13 anni guidando a 60 miglia orarie

Il dato più interessante è però quello relativo alle aree più densamente mappate tra cui spicca ai primi 4 posti il Cameroun con Yaoundè e Mfoundi, mentre per scovare qualche zona italiana le prime sono le seguenti:

Fonte: MapBox

MapBox, Cesium, OpenLayers … tutto in 3D!


Già nell’annuncio di OpenLayers 3 era stata dichiarata l’integrazione con Cesium, una libreria Javascript per la creazione di globi 3D (e mappe 2D), in un web browser senza l’utilizzo di plugin che utilizza le WebGL (e quindi necessita di browser di nuova generazione …..), con l’obiettivo di essere cross-browser.

Viene distribuito in modalità open source sotto licenza Apache 2.0, e il suo utilizzo è free per tutti gli usi, commerciali e non.

Ora stanno uscendo i primi samples come questo che permette di vedere affincate (e sincornizzate …), una mappa 2D ed un globo 3D ….

OL3-Cesium….. o come questo che permette di avere a disposzione i tool di editing tipici di OpenLayers ma questa volta su un globo.OL3-Cesium-2E’ qyuindi possibile immaginare a  breve delle web application basate su OpenLayers 3 che permetteranno di avere anche possibilità di rappresentare dati su globi 3D.

In realtà sembra che sulla carta le combinazioni e le opportunità possibili non siano solo queste: considerando infatti che in OpenLayers 3  una delle possibili fonti dati supportate siano anche i tiles di MapBox

OL3-MapBox

e che giusto oggi è uscito un post sul sito di Cesium che annuncia la possibilità di caricare i tiles di MapBox su globi di Cesium

MapBox-Cesium

corredato dal fatto che (sito testualmente ….), ” …. If you have a MapBox account, you can view your own maps in 3D. In MapBox, copy the Map ID from the mapbox.js tab on the Publish page, and paste it into the text box in the upper right …..” ecco che la cosa si fa molto interessante per chi voglia, o abbia necessità, di far visualizzare dei propri dati su un globo 3D.

Via MapBox può quindi pubblicare la propia mappa e poi utilizzare Cesium per avereun globo 3D su cui “appoggiare” la propria mappa in cloud.

Se poi a questo aggiungiamo la potenziale opportunità di una integrazione con OpenLayers 3 e quindi la possibilità di costruirsi delle proprie web applicaztion di web mapping o web gis (ma non solo, si deve tenere anche presente l’apertura di OpenLayers 3 verso il mondo mobile …), ecco che è possibile ipotizzare una soluzione, di ottimo livello, che si basa completamente su uno stack open source.