Tempo fa scrissi un articolo su ArcGIS Server 9.3 soffermandomi sui servizi REST e le API Javascript ed accennando al fatto che ESRI mette a disposizione delle estensioni per le API di Google Maps e per quelle di Bing Maps.
Ultimamente ho lavorato un po’ con le prime e ne ho avuto complessivamente una buona impressione. Tuttavia, durante lo sviluppo, ho riscontrato un problema nella misurazione delle distanze e delle aree che merita di essere messo in evidenza, soprattutto perché gli esempi della documentazione ESRI non lo fanno a dovere ed anzi, secondo me, risultano leggermente fuorvianti.
Terminata la premessa, prima di andare avanti con l’articolo, voglio ringraziare Domenico Ciavarella, che mi ha dato un supporto fondamentale per arrivare ad una soluzione che altrimenti starei ancora cercando.
La proiezione di Google Maps
Effetto di distorsione delle aree
Google Maps, Bing Maps ed altri provider (come OpenStreetMap, Yahoo e, di recente, la stessa ESRI) utilizzano una proiezione nota come Spherical Mercator, derivata dalla proiezione di Mercatore. Il codice EPSG ufficiale è 3785, anche se prima della sua definizione molti software hanno utilizzato l’ufficioso 900913. L’identificativo per i software ESRI, tra cui ovviamente ArcGIS Server, è invece 102113.
Questa proiezione considera la Terra come una sfera e consente di includerne completamente la superficie all’interno di un quadrato.
Quando però si rappresenta una superficie curva su di un piano, come un foglio di carta o il monitor di un computer, si introducono delle deformazioni. In questo caso, man mano che ci si allontana dall’equatore le aree cartografate subiscono un pesante stiramento sia in senso verticale che orizzontale e diventano, quindi, via via più esagerate verso i poli (la Groenlandia, per esempio, sembra più grande dell’Africa). Questa proiezione evidentemente non è fatta per minimizzare la deformazione delle aree (la proiezione di Mercatore è conforme infatti), ma risulta vantaggiosa per l’uso attraverso il web perché consente di applicare un modello efficiente di tassellamento e caching.
Il problema…
Ammettiamo di voler creare un’applicazione di webmapping con le sopracitate estensioni delle API Javascript di ArcGIS Server per Google Maps.
La prima cosa da fare è creare un mapservice in grado di esporre i nostri dati spaziali con la medesima proiezione delle basi cartografiche di Google. Come spiegato nel post dedicato ad ArcGIS Server (linkato all’inizio di questo articolo) un mapservice “aggancia” e pubblica un progetto redatto in ArcMap (il classico .mxd), quindi basta assegnare al dataframe del progetto il sistema di riferimento appropriato (che si trova nella lista dei sistemi proiettati, alla voce WGS 84 Web Mercator, con identificativo 102113), salvare il tutto e pubblicarlo con ArcGIS Server. Niente di difficile insomma.
Focalizziamoci ora sullo sviluppo del client: tra i tanti strumenti che oggi ci si aspetta di trovare in una applicazione WebGIS ci sono i “righelli” che consentono di disegnare spezzate e poligoni e di misurarne poi lunghezza ed area. ESRI lo sa, ed ha giustamente incluso un esempio per mostrare come creare questi tool nella documentazione delle sue API.
Abbiamo detto però che l’uso della proiezione Spherical Mercator provoca una deformazione crescente man mano che ci si spinge verso i poli e, tracciando una spezzata per misurare un oggetto al suolo di dimensioni note, come uno stadio di calcio, ci si accorge dell’inghippo: è più lungo di quanto dovrebbe essere (circa 146 metri invece di 105-110).
L’esempio fornito da ESRI non considera la deformazione e può indurre gli sviluppatori all’errore. E’ vero che una persona con le adeguate conoscenze di geomatica può arrivare ad intuire il rischio insito nell’uso della proiezione di Google, ma è anche vero che il webmapping è terra di confine tra “gissologi” e sviluppatori informatici “puri”, senza particolari cognizioni tipiche del mondo gis. Non è per nulla detto, quindi, che chi sviluppa abbia i mezzi per immaginare il problema prima di averci sbattuto il muso e personalmente credo che aver pubblicato un esempio del genere nella documentazione ufficiale, senza neanche accennare alla questione della deformazione, sia stata una leggerezza.
…e la soluzione
Non molto tempo fa sul blog di ArcGIS Server è comparso un interessante post che mette in evidenza il problema della misurazione delle distanze e spiega come comportarsi per risolverlo.
Il servizio che in ArcGIS Server è incaricato di calcolare lunghezze ed aree, il Geometry Service, è in grado di svolgere diverse altre operazioni, tra cui la proiezione al volo delle geometrie.
Il “trucco” consiste nel riproiettare la geometria tracciata dall’utente nel sistema di riferimento più adatto alla zona mappata prima di effettuarne la misurazione e stampare a schermo il risultato.
Purtroppo lo snippet di codice fornito da ESRI è pronto all’uso solo per le API Javascript, mentre per le estensioni di Google Maps bisogna fare da soli e il discorso è un po’ meno semplice.
Al posto di questa funzione:
var sr = new esri.SpatialReference({wkid:32610});
geometryService.project([graphic], sr, function(projectedGraphic) {
geometryService.areasAndLengths(projectedGraphic, function(result) {
var perimeter = result.lengths[0];
var area = result.areas[0];
});
});
abbiamo bisogno di questa:
var geometryService = new esri.arcgis.gmaps.Geometry("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
function calculateLengths() {
//Parametri per la riproiezione
var params = new esri.arcgis.gmaps.ProjectParameters();
params.geometries = [polyline];
params.inSpatialReference = 4326;
params.outSpatialReference = 3004; //Gauss-Boaga fuso Est
//Riproiezione e funzione di callback
geometryService.project(params, getLengths);
}
function getLengths(projectResults){
var url = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer/lengths";
var parameters = {
polylines: projectResults.geometries,
sr: 3004
};
esri.arcgis.gmaps.JSONRequest(url, test, parameters);
}
function test(result) {
alert(result.lengths[0]+" m");
}
Ho realizzato un veloce esempio che mostra i risultati ottenuti dal codice proposto da ESRI nella propria documentazione a confronto con quelli ottenuti dalla riproiezione con il Geometry Service e dalle semplici API di Google Maps, che hanno dei metodi propri per la misura di linee e poligoni.
GIScover è molto popolare tra gli appassionati di outdoor e GPS come il sottoscritto. Nato come mashup di Google Maps per condividere i propri itinerari, attraverso lo scambio di tracce GPS, si è gradualmente evoluto in una realtà più complessa ed in direzioni complementari.
In particolare ho trovato interessante l’utilizzo dell’User-Generated Content o UGC per proporre un servizio commerciale e personalizzato alle autorità turistiche locali.
Per capire meglio la realtà imprenditoriale che c’è dietro ho preferito quindi la forma dell’intervista, scritta e video, chiedendo direttamente al fondatore, Massimo Nicolodi, qualcosa di più sulla sua creatura.
Lorenzo Perone – Cos’è GIScover?
Massimo Nicolodi- GIScover è un punto d’incontro per appassionati di viaggi itineranti e di attività outdoor. L’obiettivo principale è quello di fornire una banca dati di tour e tracce GPS accessibile gratuitamente da chiunque e da ovunque.
Per gestire la grande quantità di dati è stato creato un motore di ricerca potente, ma facile ed intuitivo nell’uso, capace di reperire velocemente i tour ricercati.
Tutti gli utenti del sito possono registrarsi e scaricare i tour gratuitamente.
Ad oggi abbiamo 6640 tour per una distanza di 367538 Km ed un dislivello in salita di 11032 km.
LP – Quando è nato GIScover?
MN – Nel 2004.
LP – Perché è nato GIScover?
MN – ll team di GIScover è formato da grandi viaggiatori ed amanti di sport estremi. Negli ultimi anni le tecniche e gli equipaggiamenti sportivi sono cambiati e si sono evoluti, ma due cose sono rimaste costanti: pianificare un nuovo viaggio è ancora una cosa difficile che richiede tempo e dedizione e, nonostante questo, l’eventualità di perdersi nei posti che andiamo a visitare è un’eventualità da non escludere.
Quando cominciai ad utilizzare i primi ricevitori GPS nelle mie avventure mi resi subito conto di come questo piccolo apparecchio tecnologico poteva cambiare la mia vita. Portarlo sempre con me nelle escursioni sulle alte vie delle Dolomiti, significava avere una garanzia di soccorso in caso di necessità ed inoltre era la garanzia di non perdere più la rotta. Il GPS aveva un’interfaccia semplice e poteva comunicare con il PC. In questo modo potevo salvare ed archiviare i percorsi effettuati e potevo caricare le nuove tracce da percorrere recuperate attraverso amici e conoscenti.
Da qui il passo a capire che anche altri appassionati delle Dolomiti come me potevano essere interessati a questi scambi è stato breve.
In poco tempo l’idea ha preso forma: perché non costruire, in collegamento con le autorità turistiche locali, un servizio di informazioni complesso capace di promuovere le zone meno conosciute turisticamente e di fornire un nuovo valore all’esperienza di chi si reca in questi posti? E perché non utilizzare un portale Web, con un motore di ricerca avanzato, per rendere accessibile a chiunque le informazioni in modo semplice, veloce ed economico?
LP – Quante persone hanno collaborato alla nascita di GIScover?
MN – Eravamo in 10.
LP – Chi erano i protagonisti delle escursioni? Voi? Dei vostri amici? Un’associazione sportiva alla quale vi eravate affiliati?
MN – Appassionati di outdoor, io e mia moglie, amici. Abbiamo iniziato a mappare le principali ciclabili del trentino, le altevie delle dolomiti e percorsi di MTB tra cui le Transalp da Mittenwald al Garda (ne ho concluse 5).
LP – Che tecnologie utilizza Giscover?
MN – PHP, MySQL, Google Maps, Drupal. Nella nuova versione integreremo anche Open Street Map con scambio di tracce.
LP – Quanti utenti ha oggi GIScover?
MN – Circa 16.00.
LP – Come ha fatto GIScover a catalizzare la massa critica di percorsi che gli ha permesso di diventare così popolare?
MN – Siamo stati i primi a scambiare le tracce gratuitamente e abbiamo iniziato con bellissimi tour di sci alpinismo e mountain bike.
LP – Cosa sono gli ecopunti?
MN – Sono dei punti attribuiti agli utenti in base ai chilometri di percorsi caricati e che traduciamo in buoni sconto per acquisto di GPS e software dal nostro sito.
LP – Il compenso in ecopunti per i percorsi inseriti è stato efficace?
MN – E’ stato particolarmente stimolante per alcuni rilevatori che hanno svolto un lavoro incredibile.
LP – C’è qualche utente che ha raggiunto livelli di retribuzione tali da fare acquisti importanti?
MN – Qualcuno ha ricevuto dispositivi GPS pagati con il sudore e gli ecopunti.
LP – Quante sono le persone attualmente impiegate in GIScover? Che profili hanno?
MN – Ci sono attualmente 5 sviluppatori, collaborano inoltre fotografi e web designer.
LP – GIScover mostra attualmente una trasversalità di servizi (shop, corsi, servizi di geolocalizzazione, servizi di web-gis di supporto al marketing territoriale) quali sono quelli trainanti da un punto di vista economico?
MN – I principali settori di riferimento sono il turismo, la pubblica amministrazione e l’educazione.
Abbiamo richieste da diverse località turistiche di aggiungere ai loro siti web delle funzionalità geoweb per promuovere i principali punti di interesse ed itinerari sul loro territorio. A questo proposito stiamo introducendo il concetto del GPS Guided Tour.
La presenza di GPS sui telefoni di nuova generazione sta accellerando la diffusione e la richiesta di queste tecnologie, di conseguenza noi stiamo investendo in ricerca e sviluppo sul settore mobile (Nokia, iPhone e Andorid).
Abbiamo iniziato un’attività di collaborazione con editori, in particolare segnalo la collaborazione con Ediciclo, editore specializzato nella pubblicazione di guide escursionistiche e per il cicloturismo. Stiamo accompagnando le ultime pubblicazioni con tracce GPS per agevolare i lettori nell’individuazione dei percorsi.
LP – C’è un sito/progetto italiano a cui ti sei ispirato o che ti piace particolarmente?
MN – I miei riferimenti sono wikipedia, flickr, google maps e youtube.
La nuova versione di GIScover che stiamo sviluppando ne permetterà una facile integrazione con funzioni simili.
LP – Quali sono i temi su cui state investendo e che pensate possano diventare economicamente rilevanti per la vostra azienda?
MN – Turismo, annunci classificati, pubblica amministrazione, educazione, mobilità e trasporto pubblico, sicurezza in montagna, applicazioni per mobile (Symbian, iPhone, BalckBerry e Android), canali tematici per i geocontenuti.
LP – Ci sono delle attività, diverse da GIScover, in cui siete coinvolti in questo momento e di cui vuoi parlarci?
MN – Un progetto al quale tengo particolarmente è “Scuola Web 2.0 – Esplora e Racconta” che è stato approvato e finanziato dalla Fondazione della Cassa di Risparmio di Trento. E’ un progetto rivolto al mondo dell’educazione con scuole medie e secondarie del trentino ed alcune facoltà universitarie. E’ prevista inoltre la partecipazione di enti per beni culturali, turismo ed innovazione tecnologica.
Google Maps per Mobile – qui è possibile richiedere fermate e linee da punto a punto anche per trasporto pubblico, provatelo su Firenze!
Digital Signage e automation – azienda con cui collaboriamo per sistemi di digital signage e broadcasting localizzato. Sono tra i maggiori produttori al mondo di display per outdoor e sistemi bancomat. Possono produrre anche distributori di biglietti e schede magnetiche.
Google Transit – elenco delle città che offrono informazioni e orari per trasporto pubblico. Speriamo di poter aggiungere anche la regione Abruzzo.
Terravision – sito interessante per organizzare vacanze “fly and ski” e turismo estivo e attivo (bici escursionismo ecc…).
Val Venosta – Itinerari turistici in bici + treno.
Era da un po’ che avevo in mente di dedicare un articolo a jQuery, finalmente – complici l’influenza che mi ha tenuto a riposo forzato e l’ispirazione tratta da Linfiniti – sono riuscito nell’intento.
Per chi non lo sapesse, jQuery è un framework Javascript open source molto potente, caratterizzato da una sintassi snella e di facile comprensione.
Il framework è rilasciato con doppia licenza: MIT e GPL.
I motivi per usare jQuery nei propri progetti non mancano di certo: comunità attiva, disponibilità di molti temi e ottimi plugin, compatibilità e leggerezza sono i primi che mi vengono in mente.
In questo articolo vedremo come costruire una mappa online sfruttando jQuery UI e OpenLayers.
Il risultato della “fusione” è un client dotato di funzionalità di base come zoom, pan, misurazione delle distanze e vari layer di sfondo intercambiabili.
Si tratta, in pratica, di un template da cui partire per sviluppare applicazioni di web-mapping vere e proprie.
Per creare il client dell’esempio abbiamo bisogno di:
qTip, un plugin per modellare dei tooltip avanzati
Ho già raccolto il tutto in questo archivio .zip. Qui dentro, oltre alle librerie, si trova la totalità dei file che compongono il client. Vi basta quindi cliccare sul link per avere il template sul vostro computer, pronto all’uso e/o ad essere trasformato come volete.
Vi invito però a dare lo stesso un’occhiata alla pagina di download di jQuery UI: noterete che è possibile modificare radicalmente il pacchetto prima di scaricarlo. Potete includere le sole componenti utili ai vostri scopi e scegliere tra vari temi già pronti o uno composto da voi con ThemeRoller.
Io ho fatto solo qualche semplice modifica al tema UI-Darkness (in questo periodo non mi piacciono i bordi arrotondati…) ma, come dicevo, si può fare molto di più. Provare per credere.
Ora un po’ di anatomia.
Scompattato l’esempio, è bene posare lo sguardo su alcune delle directory e dei file compresi al suo interno.
jsLib
E’ la directory contenente tutte le librerie elencate in precedenza, necessarie al funzionamento del template.
index.html
Nella sezione header sono referenziate le librerie utilizzate, i fogli di stile e i file javascript.
Nel body è possibile notare che l’attributo class di molti degli elementi della pagina (div, button, span, ecc.) è parecchio popolato. Questo è il metodo con cui jQuery UI e jQueryUI.Layout si “ancorano” alla pagina web.
Per comprendere meglio vi rimando alla pagina degli esempi di jQuery UI.Layout e a questo articolo che spiega in maniera egregia la composizione della toolbar e dei suoi pulsanti.
jsFunc/mappa.js
Contiene la mappa realizzata con OpenLayers.
Nella funzione di inizializzazione (initMap) richiamata al caricamento della pagina, ci sono, tra le altre cose, i controlli collegati ai bottoni della toolbar.
jsFunc/layout.js
In questo script, con poco più di 40 righe di codice, jQuery UI e i suoi plugin definiscono Il layout dell’applicazione, il tema, il comportamento e l’aspetto di bottoni e tooltip.
Css/style.css
A parte qualche piccola “frivolezza” come queste (a mio giudizio) bellissime icone, in questo foglio di stile sono descritte le regole fondamentali per la corretta presentazione del layout e della toolbar creati tramite jQuery UI.
Ecco, questo è grossomodo ciò che bisogna sapere per iniziare a studiare i mille modi di mescolare le potenzialità di jQuery a quelle di OpenLayers.
Fondamentale, come sempre, è il ricorso alla documentazione ufficiale dei vari progetti e al supporto offerto dalla comunità.
Per chiudere segnalo anche due guide in italiano, estremamente ben fatte ed utilissime per avvicinarsi a jQuery e jQuery UI. Entrambe sono firmate HTML.it: Guida a jQuery Guida a jQuery UI
Ultimamente mi è stato richiesto un applicativo di webmapping che mettesse chiunque (o quasi…) in condizione di gestire agevolmente un geodatabase, aggiornando nel tempo le informazioni contenute, comprese le feature geografiche. In due parole: un gestionale web, ma con delle funzionalità proprie dei GIS desktop.
Il committente ha richiesto una soluzione open source ed io sono stato ben contento di proporre il rodato quartetto composto da UMN-Mapserver, PostGIS, PHP e MapFish.
In passato avevo già realizzato qualcosa di simile, ma si trattava di inserire dei punti a partire da una coppia di coordinate, operazione semplicissima grazie a PostGIS. Questa volta era necessario che l’utente disegnasse le geometrie online, direttamente nella finestra del browser, ed ho colto l’occasione per dare finalmente un’occhiata alle funzioni di editing vettoriale di OpenLayers 2.8. Ne sono rimasto estremamente soddisfatto, come sempre avviene quando si tratta di OpenLayers.
Scorrendo la pagina degli esempi ed inserendo il filtro “vector”, ci si rende subito conto della potenza dei controlli dedicati all’editing.
Grazie agli esempi, che coprono quasi tutto lo spettro delle possibilità, è stato facile produrre la parte client del mio lavoro.
L’editor ottenuto è adattabile a qualsiasi back-end “spatial enabled”, è indipendente dal mapserver scelto per pubblicare i dataset online, dal geodbms usato per contenerli e dal linguaggio di programmazione lato server.
Il cuore del client è costituito dalle funzioni presentate in questo esempio, che consentono di disegnare una feature da serializzare sotto forma di stringa in ben 6 formati standard differenti. Ottenuta la stringa, il gioco è fatto: uno script lato server si occupa di recuperarla e lanciare una query di inserimento nel geodabase (ci sono, come sempre, anche altre soluzioni).
L’operazione inversa, vale a dire deserializzare una stringa ed ottenere una feature, è ugualmente possibile e può essere molto utile.
Per esempio, volendo rifinire degli shapefile su una base Google Maps o Openstreetmap, basta trasformarli KML (o in uno degli altri 5 formati supportati), aprire il file con un editor di testo e, infine, copiare ed incollare il contenuto dentro la textarea del nostro editor. A questo punto si è liberi di modificare a piacimento le feature importate.
Questo è solo un esempio grezzo di import, dispobile “out of the box”, ma una volta collegato l’editor ad un back-end spaziale si può dare sfogo alla fantasia e creare delle funzioni di importazione più raffinate.
Cliccando qui potete vedere una versione super-generica del client di editing da me realizzato. Ho usato MapFish 1.1[1] per dare un aspetto un po’ più carino[2] al tutto ed ho modificato il codice degli esempi affinché le diverse funzioni di editing potessero essere attivate da una toolbar invece che da una serie di checkbox e radiobutton. I commenti nel codice dovrebbero essere abbastanza esplicativi.
[1]Si tratta di una versione leggermente modificata in cui ho sostituito OpenLayers 2.7 con OpenLayers 2.8
[2]Qualcuno potrebbe cimentarsi con Dojo o jQuery… sono sicuro che non verrebbe affatto male
Nota
Devo scusarmi con i lettori di TANTO iscritti al feed RSS.
Stamattina ho accidentalmente cliccato sul bottone “Pubblica” mentre scrivevo la bozza e nonostante mi sia precipitato a recuperare, non sono riuscito ad evitare che l’articolo incompleto finisse nel feed. Per farmi perdonare mi sono incollato al computer ed ho fatto il possibile per finire l’articolo e la demo alla svelta! In futuro starò più attento a dove clicco e soprattutto non inizierò a scrivere bozze di domenica mattina prima di colazione!
Come lo stesso Istituto fa presente nell’introduzione, il lavoro ha come obiettivo essenzialmente quello di compendiare svariati dati di carattere amministrativo. Ma un altro passaggio degli editori, che mi ha positivamente colpito, mette in evidenza il ruolo della “geografia amministrativa”, che ha come scopo soprattutto quello di analizzare la suddivisione geografica dei soggetti pubblici che hanno competenze territoriali, e valutare l’efficacia della loro articolazione.
Il volume è organizzato in otto capitoli che descrivono:
Caratteristiche del territorio (zone altimetriche, classificazione dei Comuni secondo l’altitudine, il grado di urbanizzazione, gli agglomerati morfologici urbani).
Unità amministrative (circoscrizioni comunali, comunità montane, comunità isolane).
Unità funzionali: area economica (Direzioni regionali e provinciali del lavoro, Camere di Commercio, Centri per l’impiego, Agenzia del Demanio, Agenzia delle Entrate, Agenzia del Territorio, Agenzia delle Dogane, Distretti Industriali, Aree obiettivo UE).
Unità funzionali: area istruzione, turismo, cultura e servizi sanitari (Uffici Scolastici Regionali e Provinciali, Circoscrizioni turistiche, Dir. regionali beni culturali e paesaggistici, Soprintendenze beni AA, ASL)
Unità funzionali: area ambiente, trasporti e reti (ARPA/APPA, ATO, Aree naturali protette, CFS, Compartimenti ANAS, Compartimenti rete ferroviaria, ENAC, CAP, Distretti telefonici).
Unità funzionali: area difesa, sicurezza, giustizia (Questure, CC, GdF, Capitanerie di porto, VVFF, Corti d’appello, Tribunale ordinario, Giudici di pace).
Unità statistiche (Nomenclatura delle unità territoriali per le statistiche, Sistemi locali del lavoro, Specializzazione produttiva prevalente dei sistemi locali del lavoro, Distretti industriali).
Altre partizioni (Diocesi, Regioni ecclesiastiche).
Per ciascuna entità amministrativa viene descritta l’organizzazione dell’ente e le sue principali funzioni. Per ognuna di esse viene messo a disposizione uno shapefile (UTM 32 WGS84) e un file Excel con riportate informazioni descrittive minime. Gli strati geografici – come spiega lo stesso ISTAT – sono stati realizzati partendo dai confini amministrativi dei Comuni, aggregati con operazioni topologiche di dissolve a seconda dell’organizzazione territoriale di ogni entità presente nell’atlante.
La reale importanza della pubblicazione è sostanzialmente quella di raccoglie in maniera sistematica informazioni di carattere amministrativo relative a numerosi soggetti pubblici difficilmente reperibili altrove da fonti ufficiali.
Mancano d’altro canto, per ciascuna di esse, dati di tipo quantitativo che avrebbero costituito il vero valore aggiunto dell’atlante, come ad esempio il numero di scuole, di docenti e di alunni afferenti a USR e USP, il numero di poliziotti in carico alle Questure, o quello dei Carabinieri a Tenenze e Stazioni. Informazioni che avrebbero potuto costituire la base di dati necessaria per poter fare proprio quel lavoro di analisi dell’efficacia, del dimensionamento e dell’articolazione dei soggetti e degli operatori pubblici di cui si parlava prima. Fare geografia amministrativa è ancora difficile in Italia, perchè spesso i dati vanno aggregati ad hoc, ma questo atlante è già un importante passo avanti.
Ah, dimenticavo… rimane come al solito il problema della licenza di utilizzo di questi dati. La dicitura in quinta pagina del volume “Si autorizza la riproduzione a fini non commerciali e con citazione della fonte” è abbastanza chiara, ma per completezza vi invito a leggere con attenzione l’esperienza che hanno avuto gli amici di GFOSS.it sempre con l’ISTAT, sembra comunque positiva.
TANTO non rappresenta una testata giornalistica ai sensi della legge n. 62 del 7.03.2001, in quanto non viene aggiornato con una precisa e determinata periodicita'. Pertanto, in alcun modo puo' considerarsi un prodotto editoriale.