TANTO » openlayers http://blog.spaziogis.it le cose che ci piacciono ... Mon, 07 Nov 2016 09:59:24 +0000 it-IT hourly 1 Novità in Mapserver 6.0.0-beta1 http://blog.spaziogis.it/2011/03/10/novita-in-mapserver-6-0-0-beta1/ http://blog.spaziogis.it/2011/03/10/novita-in-mapserver-6-0-0-beta1/#comments Thu, 10 Mar 2011 09:12:31 +0000 Giovanni Allegri http://blog.spaziogis.it/?p=3500
  • Output in formato Kml
  • Migliorata l’etichettatura: le etichette con la proprietà ANGLE FOLLOW a volte portavano ad avere lebal con angoli strettissimi e diventavano illeggibili. Adesso è possibile chiedere di evitarle, lasciando spazio ad etichette in posizioni più favorevoli.
  • Migliorato il supporto al Feature Style
  • Cresciuti i formati di output per le richieste WFS GetFeature
  • Map viewer integrato con Openlayers
  • Migliorata la gestione dei file temporanei
  • Possibilità di abilitare/disabilitare i singoli layer nei servizi OGC
  • Possibilità di combinare feature provenienti da layer differenti
  • Supporto al clustering delle feature nei layer puntuali
  • Release note originale: http://lists.osgeo.org/pipermail/mapserver-users/2011-March/068125.html

    L'articolo Novità in Mapserver 6.0.0-beta1 è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2011/03/10/novita-in-mapserver-6-0-0-beta1/feed/ 0
    I pionieri dell’Open Data in Italia http://blog.spaziogis.it/2010/07/12/i-pionieri-dellopen-data-in-italia/ http://blog.spaziogis.it/2010/07/12/i-pionieri-dellopen-data-in-italia/#comments Mon, 12 Jul 2010 07:27:50 +0000 Antonio Falciano http://blog.spaziogis.it/?p=2213 E’ appena trascorso un mese dall’entrata in esercizio del primo portale Open Data italiano, dati.piemonte.it, il quale è stato accolto favorevolmente dagli entusiasti sostenitori italiani del movimento Open Data ed addirittura classificato come portale governativo di prima categoria dal gruppo PSI (Public Sector Information) della Commissione Europea, in quanto garantisce l’accesso diretto ai dati, analogamente [...]]]> E’ appena trascorso un mese dall’entrata in esercizio del primo portale Open Data italiano, dati.piemonte.it, il quale è stato accolto favorevolmente dagli entusiasti sostenitori italiani del movimento Open Data ed addirittura classificato come portale governativo di prima categoria dal gruppo PSI (Public Sector Information) della Commissione Europea, in quanto garantisce l’accesso diretto ai dati, analogamente a data.gov.

    Pur trattandosi di una versione beta, rappresenta indubbiamente una pietra miliare che dimostra la fattibilità dell’Open Data anche in Italia, nonostante le difficoltà di cui si accennava in questo recente post.

    Ma vediamo in dettaglio di cosa si tratta. La pagina di accesso al portale si presenta con una grafica semplice ed accattivante su cui campeggia in primo piano il principio di fondo dell’iniziativa, una vera e propria dichiarazione di intenti in perfetto stile Government 2.0 ed in completo accordo con il senso della Direttiva 2003/98/CE del Parlamento europeo:

    I dati pubblici sono di tutti
    I dati in possesso della Pubblica Amministrazione sono un patrimonio informativo prezioso per la società e l’economia. La Regione Piemonte intende metterli a disposizione di cittadini e imprese per stimolare un nuovo rapporto fra pubblico e privato e favorire lo sviluppo di iniziative imprenditoriali.

    A valle di questa esaltante premessa, seguono immediatamente pochi ma efficaci menù che rimandano ai contenuti del portale, dopodiché si va direttamente al sodo, accedendo direttamente ad un piccolo assaggio dei dati grezzi finora messi a disposizione, ad un estratto delle discussioni più recenti nel blog ed, infine, ad una sezione dedicata al riuso dei dati pubblici, dotata di una presentazione multimediale esplicativa sull’argomento.

    Curiosando all’interno della sezione Dati, è possibile osservare che:

    • al momento sono presenti solo alcuni set di dati, tuttavia assicurano che a questi se ne aggiungeranno progressivamente degli altri, anche su richiesta degli utenti;
    • i dati grezzi sono descritti da metadati (informazioni sui dati);
    • sono resi disponibili in formato CSV e, di conseguenza, sono consultabili mediante un qualsiasi editor di testo;
    • sono aggregati a scala provinciale e, talvolta, comunale;
    • è facile verificare come siano indicizzati nei principali motori di ricerca e quindi siano di facile reperibilità anche all’esterno del portale;
    • infine, sono corredati di un contratto di licenza in cui si afferma chiaramente che la Regione Piemonte ne detiene la titolarità e ne “autorizza la libera e gratuita consultazione, estrazione, riproduzione e modifica [...] da parte di chiunque vi abbia interesse per qualunque fine, ovvero secondo i termini della licenza Creative Commons – CC0 1.0 Universal” (dominio pubblico).

    Benissimo! Siamo certamente ancora distanti dalla mole impressionante di contenuti presenti in data.gov e data.gov.uk, tuttavia sono largamente rispettate in sostanza le indicazioni del Manifesto stilato da The Guardian, contenente a mio avviso un insieme minimo di principi pienamente condivisibile.

    Il rilascio dei dati grezzi prodotti dalla PA – in formato aperto e con licenze che ne consentono il riuso – può produrre effetti benefici tanto nella trasparenza dei processi decisionali delle amministrazioni, quanto nella qualità dei servizi e nell’economia immateriale che vi ruoterebbe attorno. In particolare, i raw data costituiscono una risorsa dall’enorme potenziale nascosto, che è possibile far venire allo scoperto sfruttando le relazioni esistenti tra i dati in maniera originale e creativa in fase di produzione di nuovi servizi, magari ottenendo applicazioni assolutamente impensabili da parte degli stessi produttori di dati.

    TANTO si occupa ormai da diverso tempo di sensibilizzare i suoi lettori verso l’utilizzo creativo ed appassionato dei vari strumenti del web 2.0 disponibili in rete, sottolineando come essi possano rappresentare un importante mezzo di sviluppo e di crescita sia per chi si occupa di geomatica, che per l’intera collettività. A tal fine, mi piace riportare alcuni stralci di un commento di Pietro Blu Giandonato relativo a questo interessante post:

    esiste ormai sul web una messe di strumenti, applicazioni, servizi, fonti di dati formidabile, che sta crescendo vertiginosamente, e della quale non resta altro che coglierne le opportunità a piene mani. [...] In un paio d’ore, tra progettazione e realizzazione, è possibile tirare su un mashup potente, semplice e veloce per mettere in strada dati reperiti altrove da più fonti, o addirittura originali! [...] E’ necessario cambiare il paradigma della geomatica in Italia, passando dal GIS come unico strumento per la rappresentazione e gestione dei dati, arrivando a una sorta di “cloudmapping” realizzato con le decine di strumenti web 2.0 che esistono in giro. Una strada peraltro che richiede essenzialmente fantasia, creatività e intuito, che permette di costruire grandi cose con piccole azioni. Il problema è ovviamente immaginarle…

    Così, mi sono chiesto: è possibile visualizzare i raw data piemontesi all’interno di una piccola applicazione di web mapping facendo in modo che i risultati delle interrogazioni siano dei bei grafici, piuttosto che noiosi numeri? Certamente! Ho scelto quindi i dati relativi alle dotazioni ICT presso i cittadini e ne ho effettuato il download accettandone le condizioni di utilizzo. Trattandosi di dati in forma tabellare, li ho semplicemente importati all’interno di un foglio di calcolo di Google Docs e poi pubblicati in modo tale che “chiunque abbia accesso a Internet possa trovarli e visualizzarli“, ottenendo la struttura seguente:

    I dati prescelti possono essere analizzati secondo differenti chiavi di lettura (query). Ad esempio, è possibile risalire alle dotazioni ICT per provincia e per anno, così come alla singola dotazione per provincia negli anni 2005-2009. Mi sono posto pertanto il seguente obiettivo: individuare lo strumento web 2.0 più agevole per interrogare la tabella come all’interno di un database, in modo da poter estrarre di volta in volta solo i dati necessari per ottenere il grafico corrispondente ad una particolare query. Dopo vari tentativi con Yahoo! Pipes ed YQL (Yahoo! Query Language), peraltro abbastanza ben riusciti (li trovate qui), ho individuato nel Query Language delle Google Visualisation API un’alternativa relativamente semplice ed efficiente, tale da scongiurare la necessità di dover configurare un web server e risolvere le beghe informatiche dovute alle cross-domain restrictions. Si tratta praticamente delle stesse API che consentono di ottenere dei grafici a partire dai dati.

    A proposito della componente geografica, ho deciso di utilizzare come client OpenLayers (di cui si parla spesso qui su TANTO) per via della sua enorme versatilità e semplicità d’uso, un servizio TMS (Tile Map Service) di OpenStreetMap come layer di base ( i “linked data” per eccellenza!), ed i confini ISTAT delle province reperibili qui, utilizzabili per scopi non commerciali a patto di citarne la fonte. Questi ultimi sono stati convertiti nel formato GML ed opportunamente trasformati nel sistema WGS84 (EPSG:4326).

    In definitiva, il funzionamento dell’applicazione è molto semplice ed intuitivo: scelta una delle opzioni (query) poste in basso, per interrogare una delle province piemontesi occorre semplicemente cliccare sulla corrispondente entità vettoriale che la rappresenta in mappa. Comparirà successivamente un popup contenente la denominazione della provincia, il titolo del grafico ed il grafico stesso (dotato di legenda, se necessaria). Questo è il mashup risultante:

    Per concludere, ho alcune interessanti novità da segnalare. Nel frattempo, negli altri Paesi il modello di Open Government procede inesorabilmente la sua marcia. In particolare, nel Regno Unito è stata appena istituita una Commissione per la Trasparenza nel Settore Pubblico con il compito di guidare l’agenda sulla Trasparenza del Governo, rendendola un elemento cardine di ogni sua attività e assicurando che tutti i Dipartimenti presso Whitehall rispettino le scadenze fissate per il rilascio di nuovi dataset pubblici. Inoltre, è responsabile della definizione di standard sui dati aperti per l’intero settore pubblico, recependo ciò che è richiesto dal pubblico e assicurando l’apertura dei dataset più richiesti. Un primo importante compito della Commissione attualmente in itinere consiste nella definizione dei Principi di Trasparenza dei Dati Pubblici mediante il diretto coinvolgimento degli utenti.

    Un’altra novità di rilievo è la nascita del portale italiano CKAN, un progetto ad opera della Open Knowledge Foundation. Si tratta di un catalogo di dati e contenuti aperti creato allo scopo di facilitarne la ricerca, l’uso e il riuso, al quale è possibile contribuire liberamente, fornendo informazioni sulle banche dati (metadati), quali l’URL della risorsa, l’autore e il soggetto che detiene la titolarità dei dati, la versione e la licenza d’uso.

    Sempre in Italia, un’altra notizia che fa ben sperare: il Ministro per la Pubblica Amministrazione e l’Innovazione, durante un’intervista a Frontiers of Interaction 2010, ha annunciato la creazione di un data.gov italiano entro la fine dell’anno. In particolare, la pubblicazione dei dati pubblici dovrebbe servire da contromisura ai fenomeni di corruzione legati agli appalti. Finalmente! ;)

    L'articolo I pionieri dell’Open Data in Italia è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2010/07/12/i-pionieri-dellopen-data-in-italia/feed/ 7
    jQuery e OpenLayers: agitare prima dell’uso… http://blog.spaziogis.it/2010/03/01/jquery-e-openlayers-agitare-prima-delluso/ http://blog.spaziogis.it/2010/03/01/jquery-e-openlayers-agitare-prima-delluso/#comments Mon, 01 Mar 2010 08:40:35 +0000 Alessio Di Lorenzo http://blog.spaziogis.it/?p=1747 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 [...]]]> 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.

    jquery_openlayers

    Per creare il client dell’esempio abbiamo bisogno di:

    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

    L'articolo jQuery e OpenLayers: agitare prima dell’uso… è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2010/03/01/jquery-e-openlayers-agitare-prima-delluso/feed/ 10 jquery_openlayers
    Editing vettoriale con OpenLayers http://blog.spaziogis.it/2009/09/21/editing-vettoriale-con-openlayers/ http://blog.spaziogis.it/2009/09/21/editing-vettoriale-con-openlayers/#comments Mon, 21 Sep 2009 07:28:55 +0000 Alessio Di Lorenzo http://blog.spaziogis.it/?p=1251 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 [...]]]> pencilUltimamente 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.

    vector editing con openlayers

    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! :)

    L'articolo Editing vettoriale con OpenLayers è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2009/09/21/editing-vettoriale-con-openlayers/feed/ 19 pencil vector editing con openlayers
    Pubblicati i primi servizi WMS del S.I.T.R. Sicilia http://blog.spaziogis.it/2009/07/30/pubblicati-i-primi-servizi-wms-del-sitr-sicilia/ http://blog.spaziogis.it/2009/07/30/pubblicati-i-primi-servizi-wms-del-sitr-sicilia/#comments Thu, 30 Jul 2009 09:25:01 +0000 Andrea Borruso http://blog.spaziogis.it/?p=1115 Da ieri il S.I.T.R. Sicilia, “al fine di garantire la massima interoperabilità tra i sistemi”, ha pubblicato i primi servizi WMS: Carta Tecnica Regionale scala 1:10.000 Raster UTM WGS84 Fuso 33  http://88.53.214.52/arcgis/services/CTR_10000_Raster_f33/MapServer/WMSServer Gauss Boaga Fuso Est http://88.53.214.52/arcgis/services/CTR_10000_Raster/MapServer/WMSServer Ortofoto IT2000 scala nominale 1:10.000 UTM WGS84 Fuso 33 http://88.53.214.52/arcgis/services/OrtofotoIT_2000_f33/MapServer/WMSServer Gauss Boaga Fuso Est http://88.53.214.52/arcgis/services/OrtofotoIT_2000/MapServer/WMSServer Queste le capabilities [...]]]> Da ieri il S.I.T.R. Sicilia, “al fine di garantire la massima interoperabilità tra i sistemi”, ha pubblicato i primi servizi WMS:

    • Carta Tecnica Regionale scala 1:10.000 Raster
      • UTM WGS84 Fuso 33  http://88.53.214.52/arcgis/services/CTR_10000_Raster_f33/MapServer/WMSServer
      • Gauss Boaga Fuso Est http://88.53.214.52/arcgis/services/CTR_10000_Raster/MapServer/WMSServer
    • Ortofoto IT2000 scala nominale 1:10.000
      • UTM WGS84 Fuso 33 http://88.53.214.52/arcgis/services/OrtofotoIT_2000_f33/MapServer/WMSServer
      • Gauss Boaga Fuso Est http://88.53.214.52/arcgis/services/OrtofotoIT_2000/MapServer/WMSServer

    Queste le capabilities dei 4 servizi:

    E’ una bella notizia, e spero di vedere con il tempo altri layer di base; per gli operatori “locali” era un piccolo vuoto.

    Ho fatto da subito un piccolo test – sfruttando OpenLayers – con i due layer pubblicati: qui il codice che potrete adattare alle vostre esigenze, e qui la demo.

    Esempio di pubblicazione servizi WMS S.I.T.R. Sicilia

    L'articolo Pubblicati i primi servizi WMS del S.I.T.R. Sicilia è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2009/07/30/pubblicati-i-primi-servizi-wms-del-sitr-sicilia/feed/ 0 Esempio di pubblicazione servizi WMS S.I.T.R. Sicilia
    OpenLayers 2.8 e Speedy Gonzales http://blog.spaziogis.it/2009/06/23/openlayers-28-e-speedy-gonzales/ http://blog.spaziogis.it/2009/06/23/openlayers-28-e-speedy-gonzales/#comments Tue, 23 Jun 2009 07:26:03 +0000 Andrea Borruso http://blog.spaziogis.it/?p=1018 Ci sono dei prodotti software, sviluppati con una tale costanza da fare quasi paura; sempre lì dietro l’angolo, pronti a farti fare la fine di Gatto Silvestro. Per me tra questi c’è certamente OpenLayers. Ieri è uscita inesorabilmente la release 2.8 e come sempre tante le novità. Tra queste: selezione multi-layer per oggetti vettoriali renderizzazione [...]]]> Ci sono dei prodotti software, sviluppati con una tale costanza da fare quasi paura; sempre lì dietro l’angolo, pronti a farti fare la fine di Gatto Silvestro. Per me tra questi c’è certamente OpenLayers.

    Ieri è uscita inesorabilmente la release 2.8 e come sempre tante le novità. Tra queste:

    • selezione multi-layer per oggetti vettoriali
    • renderizzazione di testo per layer vettoriali
    • supporto per il protocollo WFS
    • numerosi nuovi controlli (tra questi sottolineo il comodissimo GetFeatureInfo)
    • 5 nuovi tipi di layer (ArcXML, XYZ, MapGuide, ArcGIS Server data e ka-Map tiles)
    • supporto per lo snap, in fase di disegno vettoriale

    La lista completa la trovate qui.

    E’ molto piacevole fare la fine di Silvestro. OpenLayers, come il maledetto Speedy, è costante e sempre presente, e non fa sentire mai solo il “povero” sviluppatore di applicazioni di web-mapping. Grazie mille a tutti gli sviluppatori di questa applicazione ormai celebre ed importante.

    L'articolo OpenLayers 2.8 e Speedy Gonzales è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2009/06/23/openlayers-28-e-speedy-gonzales/feed/ 1
    Introduzione a MapFish: OpenLayer e ExtJs “a braccetto” http://blog.spaziogis.it/2009/04/23/introduzione-a-mapfish-openlayer-e-extjs-a-braccetto/ http://blog.spaziogis.it/2009/04/23/introduzione-a-mapfish-openlayer-e-extjs-a-braccetto/#comments Thu, 23 Apr 2009 14:25:08 +0000 Alessio Di Lorenzo http://blog.spaziogis.it/?p=831 Come prima cosa vorrei ringraziare Andrea per avermi dato la possibilità di contribuire, nel mio piccolo, a TANTO, scusandomi con lui per tutto il tempo (davvero troppo) passato da quando gli ho promesso questo tutorial ad oggi! In questo breve articolo-tutorial cercherò di fare una panoramica sulla componente client di MapFish, un framework open source [...]]]> Come prima cosa vorrei ringraziare Andrea per avermi dato la possibilità di contribuire, nel mio piccolo, a TANTO, scusandomi con lui per tutto il tempo (davvero troppo) passato da quando gli ho promesso questo tutorial ad oggi!

    In questo breve articolo-tutorial cercherò di fare una panoramica sulla componente client di MapFish, un framework open source basato su ExtJs e OpenLayers, grazie al quale è possibile realizzare delle applicazioni webgis in pieno stile web 2.0 con poco sforzo una volta compreso il funzionamento degli “ingranaggi”.

    Innanzitutto va detto che la parte relativa al mapping vero e proprio può essere gestita esattamente come in OpenLayers che, come già ricordato, è compreso all’interno di MapFish.
    Si ha quindi a disposizione tutta la flessibilità di OpenLayers (layer WMS, WFS, Google, Yahoo, ecc.) e se si sanno già realizzare mappe online con questa ottima libreria, il passaggio a MapFish consiste semplicemente nel comprendere come gestire layout ed eventi alla maniera di ExtJs (l’altra componente del framework) e nello scoprire gli utili widget che MapFish mette a disposizione dello sviluppatore.

    L’utilizzo di questi widget è simile a quello dei controlli di OpenLayers, con la differenza che in questo caso viene sfruttata la potenza di ExtJs per aggiungere un’interfaccia utente avanzata al controllo. I widget che necessitano del solo codice lato client sono:

    • Toolbar – una barra degli strumenti con dei tasti preimpostati (full-extent, pan, zoombox, zoom out) che è possibile espandere con nuovi bottoni sapendosi muovere un minimo con OL;
    • Layer Tree – si tratta di una “toc”, simile al layer switcher di OL, ma molto più configurabile, con la possibilità di includere facilmente icone e di annidare e raggruppare i layer a proprio piacimento;
    • Scorciatoie – liste a discesa con possibilità di autocompletamento del testo inserito (come avviene in Google suggest, per capirci) che centrano la mappa sulle coordinate corrispondenti al luogo/elemento scelto;
    • Stampa – un semplice controllo da includere per stampare la porzione di mappa visualizzata.

    Affinché gli altri widget di MapFish (stampa complessa, ricerca nel db, ecc.) funzionino, è necessario che sia installata la componente server del framework che, però, non tratteremo in questo articolo (anche perché, non avendoci mai lavorato, rischierei di scrivere una montagna di cavolate!).
    ExtJs semplifica la creazione di layout, anche molto complessi, che risultano accattivanti per l’utente e cross-browser. Con poche righe di codice è possibile creare interfacce a schede (tab), menu accordion, form avanzati, ecc… avendo la sicurezza che l’applicazione verrà correttamente visualizzata su tutti i browser più diffusi in circolazione. Con ExtJs possiamo ottenere rapidamente delle belle GUI in cui “infilare” le nostre applicazioni webgis. Insomma, sono assicurati un risultato di tutto rispetto e un bel risparmio di diottrie e bile (è risaputo che quella di rendere cross-browser delle appicazioni web “complesse” sia una delle attività che più contribuiscono alla creazione di nuovi tipi di imprecazioni… :-) ).

    Fatta questa introduzione, passiamo al tutorial vero e proprio!

    Tutorial MapFish

    Creeremo una semplice applicazione webgis, munita di una toolbar e di un layer tree, con cui sarà possibile visualizzare la localizzazione degli utenti GRASS su due mappe di base alternative.
    Le informazioni che mostreremo provengono da diversi server WMS (Nasa, Metacarta, Grass).
    Utilizzeremo la versione 1.1 del framework MapFish, scaricabile da qui come archivio compresso in formato tar.gz (se state lavorando in ambiente Windows, vi consiglio di procurarvi l’ottimo 7zip per estrarne il contenuto).

    Il primo passaggio consiste ovviamente nello scompattare quanto abbiamo scaricato in modo da ottenere una cartella (MapFish-1.1) che contiene tutto il necessario per creare la nostra applicazione d’esempio.
    Utilizzando la sola parte client non abbiamo bisogno di rendere visibile il tutto ad un eventuale webserver e possiamo posizionare la directory di cui sopra dove più ci aggrada nel filesystem…
    Tuttavia, per mantenere un certo ordine, consiglio di creare una ulteriore cartella, che chiameremo “EsempioMF”, e di lavorare al suo interno.
    Creiamo anche un file index.html, un file myMapFish.js e spostiamo anche loro nella cartella di lavoro “EsempioMF”.
    A questo punto, quindi, la situazione dovrebbe essere la seguente:

    EsempioMF
    |
    – MapFish-1.1
    |
    – index.html
    |
    – myMapfish.js

    Ora che siamo organizzati in modo più o meno ordinato, è il momento di riempire il file index.html.
    Ecco come:

    	
    <html>
    <head>
    <title>Esempio MapFish by TANTO</title>
    	
    <!-- link ai CSS della componente ExtJS
    (è possibile scaricare temi dal sito di extjs e sostituire default.css con il foglio di stile del tema scaricato... ce ne sono un paio che meritano) -->
    <link rel="stylesheet" type="text/css" href="MapFish-1.1/client/mfbase/ext/resources/css/ext-all.css" />
    <link rel="stylesheet" type="text/css" href="MapFish-1.1/client/mfbase/ext/resources/css/default.css" />
    	
    <!-- Inserisco i riferimenti agli script Javascript necessari al funzionamento del framework MapFish -->
    <script type="text/javascript" src="MapFish-1.1/client/mfbase/openlayers/lib/OpenLayers.js"></script>
    <script type="text/javascript" src="MapFish-1.1/client/mfbase/ext/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="MapFish-1.1/client/mfbase/ext/ext-all.js"></script>
    <script type="text/javascript" src="MapFish-1.1/client/mfbase/mapfish/MapFish.js"></script>
    	
    <!-- Inserisco il riferimento allo script Javascript myMapFish.js -->
    <script type="text/javascript" src="myMapFish.js"></script>
    </head>
    <body>
    <!-- Nel body creo i div che faranno da contenitori per la mappa vera e propria, per la toolbar e per il layer tree -->
    <div id="map"></div>
    <div id="buttonbar"></div>
    <div id="tree"></div>
    </body>
    </html>
    	

    I commenti indicano cosa è stato inserito nell’header.Quindi possiamo chiudere index.html e iniziare a lavorare sullo script myMapFish.js.
    Questo script conterrà due porzioni ben distinte:
    - la prima servirà a definire il layout dell’applicazione (codice ExtJs);
    - la seconda definirà la mappa vera e propria (codice OpenLayers) ed i widget MapFish che utilizzeremo.

    Cominciamo, quindi, dalla prima parte dello script ed inseriamo quanto segue:

    	
    //Layout dell'applicazione
    //************************
    Ext.onReady(function() {
        new Ext.Viewport({
            layout:'border',
            items:[{
                    region:'north',
                    margins:'4 4 4 4',
                    height: 63,
                    html: '<img src="http://blog.spaziogis.it/wp-content/themes/blacknwhite/blacknwhite/images/TANTO_logo.png"/>',
                    bodyStyle:'padding:2px;'
                    },{
                    region:'center',
                    layout:'border',
                    margins:'0 4 4 4',
                    items:[{
                            region:'north',
                            border:false,
                            contentEl:'buttonbar',
                            height:26
                            },{
                            region:'center',
                            contentEl:'map',
                            border:false
                    }]
                    },{
                    title:'Layer tree',
                    region:'east',
                    margins:'0 4 4 0',
                    width:350,
                    contentEl:'tree',
                    collapsible:true
                    },{
                    region:'south',
                    margins:'0 4 4 4',
                    height:20,
                    html:'Esempio realizzato per TANTO',
                    bodyStyle:'padding:2px;font-size:12px;font-family:tahoma,arial,helvetica'
            }]
    	
        });
    	
    });
    	

    questa porzione di codice definisce completamente la webgui, non c’è bisogno di altro.
    In sintesi, dopo aver inizializzato ExtJs con il metodo Ext.onReady, abbiamo creato un oggetto Viewport per dire ad ExtJs di utilizzare tutta la finestra del browser (dimenticavo… vogliamo che la nostra applicazione sia a tutto schermo :) ) e poi abbiamo inserito un layout di tipo ‘border’ all’interndo del quale (nel pannello ‘center’) abbiamo annidato un secondo layout dello stesso tipo.
    Ogni layout di tipo border può contenere 5 panneli (‘region’), detti north, center, east, west, south. Di questi solo ‘center’ è obbligatorio.
    Ad ogni modo vi rimando all’esplorazione del sito di ExtJs per scoprire come complicare a piacimento i vostri layout. Il sito è molto ben fatto, pieno di tutorial ed esempi.

    Passiamo ora alla mappa e ai mapfish widget.
    Sempre all’interno del file myMapFish.js inseriamo questo pezzo di codice sotto al precedente:

    	
    //Mappa e Widget
    //************************
    	
    function initMap(){
    	
        //Creo la mappa e definisco alcuni controlli di base
        var map = new OpenLayers.Map('map',{controls:[
            new OpenLayers.Control.Navigation(),
            new OpenLayers.Control.PanZoomBar()
        ]});
    	
        //Definisco l'extent che utilizzerò come vista iniziale
        var bounds = new OpenLayers.Bounds(5,36,21,50);
    	
        //Definisco i layer WMS, due di base (alternativi) e uno di overlay
        var jpl_wms = new OpenLayers.Layer.WMS("NASA_Global_Mosaic",
    "http://t1.hypercube.telascience.org/cgi-bin/landsat7",{layers: "landsat7"});
    	
        var ol_wms = new OpenLayers.Layer.WMS("OpenLayers_WMS",
    "http://labs.metacarta.com/wms/vmap0",{layers: 'basic'});
    	
        var grass_users = new OpenLayers.Layer.WMS.Untiled("Utenti_grass",
    "http://mapserver.gdf-hannover.de/cgi-bin/grassuserwms?",
            {layers: 'GRASS-Users',transparent:true, format:'image/png'},
            {isBaseLayer:false});
    	
        //Aggiungo i layer alla mappa
        map.addLayers([jpl_wms,ol_wms,grass_users]);
    	
        //Aggiungo il toolbar widget di MapFish:
        //**************************************
        //Creo la toolbar
        var toolbar = new mapfish.widgets.toolbar.Toolbar({map: map, configurable:true});
    	
        //Scelgo di renderizzare la toolbar in un div con id = buttonbar
        toolbar.render('buttonbar');
    	
        //Aggiungo i bottoni/controlli
        toolbar.addControl(new OpenLayers.Control.ZoomBox(), {iconCls: 'zoomin',toggleGroup: 'map'});
        toolbar.addControl(new OpenLayers.Control.ZoomOut(), {iconCls: 'zoomout',toggleGroup: 'map'});
        toolbar.addControl(new OpenLayers.Control.DragPan({isDefault: true}),{iconCls: 'pan', toggleGroup: 'map'});
    	
        //Attivo la toolbar
        toolbar.activate();
    	
        //Layer tree
        //***************************************
        //Creo un modello per il layer tree, distribuendo i layer in due nodi espandibili distinti (Mappe di base e Overlay)
        var model = [{
             text: "Mappe di base",
             expanded: true,
             children: [{
                  checked:true,
                  text:"Nasa Global Mosaic",
                  layerName:"NASA_Global_Mosaic"
                  },{
                  checked:false,
                  text:"OpenLayers WMS",
                  layerName:"OpenLayers_WMS"
             }]},{
             text: "Overlay",
             expanded: true,
             children: [{
                  checked:false,
                  text:"Utenti GRASS",
                  layerName:"Utenti_grass"
              }]
        }];
    	
        //Inserisco il widget vero e proprio indicando
        var tree = new mapfish.widgets.LayerTree({
        map: map, el: 'tree',
        model: model,
        border:false, autoHeight:true
        });
        tree.render();
    	
        //Centro la mappa sull'extent definito in precedenza
        map.zoomToExtent(bounds);
    	
    } //fine della funzione init()
    	

    Anche qui i commenti dovrebbero essere abbastanza chiari.
    Abbiamo creato una mappa esattamente come se stessimo lavorando con buon vecchio OpenLayers e, in più, abbiamo inserito nel codice due MapFish widget.

    Prima di vedere il risultato del nostro lavoro dobbiamo fare due piccole modifica al file index.html:
    - inserire un evento onload a livello del tag per fare in modo che la mappa venga caricata all’apertura della pagina (esattamente come in OL);
    - inseire alcune regole CSS necessarie per la corretta visualizzazione dei MapFish widget

    Ecco come deve apparire index.html modificato a dovere:

    	
    <html>
    <head>
    <title>Esempio MapFish by TANTO</title>
    	
    <!-- link ai CSS della componente ExtJS
    (è possibile scaricare temi dal sito di extjs e sostituire default.css con il foglio di stile del tema scaricato... ce ne sono un paio che meritano) -->
    <link rel="stylesheet" type="text/css" href="MapFish-1.1/client/mfbase/ext/resources/css/ext-all.css" />
    <link rel="stylesheet" type="text/css" href="MapFish-1.1/client/mfbase/ext/resources/css/default.css" />
    	
    <!-- Inserisco i riferimenti agli script Javascript necessari al funzionamento del framework MapFish -->
    <script type="text/javascript" src="MapFish-1.1/client/mfbase/openlayers/lib/OpenLayers.js"></script>
    <script type="text/javascript" src="MapFish-1.1/client/mfbase/ext/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="MapFish-1.1/client/mfbase/ext/ext-all.js"></script>
    <script type="text/javascript" src="MapFish-1.1/client/mfbase/mapfish/MapFish.js"></script>
    	
    <!-- Inserisco il riferimento allo script Javascript myMapFish.js -->
    <script type="text/javascript" src="myMapFish.js"></script>
    </head>
    <body onload="initMap()">
    <!-- Nel body creo i div che faranno da contenitori per la mappa vera e propria, per la toolbar e per il layer tree -->
    <div id="map"></div>
    <div id="buttonbar"></div>
    <div id="tree"></div>
    </body>
    </html>
    	
    <style type="text/css">
    /* Icone dei bottoni della toolbar */
    .zoomin {
    background-image:url(MapFish-1.1/client/mfbase/mapfish/img/icon_zoomin.png) !important;
    height:20px !important;
    width:20px !important;
    }
    .zoomout {
    background-image:url(MapFish-1.1/client/mfbase/mapfish/img/icon_zoomout.png) !important;
    height:20px !important;
    width:20px !important;
    }
    	
    .pan {
    background-image:url(MapFish-1.1/client/mfbase/mapfish/img/icon_pan.png) !important;
    height:20px !important;
    width:20px !important;
    }
    	
    /* Dimensioni del Layer tree */
    #tree {
    height: 100%;
    width: 100%;
    }
    </style>
    	

    Adesso apriamo index.html col borwser e il risultato dovrebbe essere questo.

    ;)

    L'articolo Introduzione a MapFish: OpenLayer e ExtJs “a braccetto” è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2009/04/23/introduzione-a-mapfish-openlayer-e-extjs-a-braccetto/feed/ 19
    Novità dall’IGMI: catalogo dei punti trigonometrici e delle carte antiche http://blog.spaziogis.it/2008/09/19/novita-dalligmi-catalogo-dei-punti-trigonometrici-e-delle-carte-antiche/ http://blog.spaziogis.it/2008/09/19/novita-dalligmi-catalogo-dei-punti-trigonometrici-e-delle-carte-antiche/#comments Fri, 19 Sep 2008 08:52:14 +0000 Andrea Borruso http://blog.spaziogis.it/?p=487 Ricevo da Claudio Rocchini e pubblico volentieri: Eccoci qua! Pubblicato il catalogo dei vertici trigonometrici e capisaldi di livellazione all’indirizzo: http://www.igmi.org/geodetica. Le coordinate visualizzate sono approssimate dato che il dato preciso e’ a pagamento. In anteprima potete vedere anche il catalogo carte antiche (ancora in fase beta) all’indirizo: http://www.igmi.org/ancient. Grazie a Claudio per la segnalazione. [...]]]> Ricevo da Claudio Rocchini e pubblico volentieri:

    Eccoci qua! Pubblicato il catalogo dei vertici trigonometrici e capisaldi di livellazione all’indirizzo: http://www.igmi.org/geodetica. Le coordinate visualizzate sono approssimate dato che il dato preciso e’ a pagamento.

    In anteprima potete vedere anche il catalogo carte antiche (ancora in fase beta) all’indirizo: http://www.igmi.org/ancient.

    Grazie a Claudio per la segnalazione. Io mi vado a fare un giro.

    L'articolo Novità dall’IGMI: catalogo dei punti trigonometrici e delle carte antiche è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2008/09/19/novita-dalligmi-catalogo-dei-punti-trigonometrici-e-delle-carte-antiche/feed/ 0
    Nuovi cataloghi interattivi dei prodotti IGM http://blog.spaziogis.it/2008/07/31/nuovi-cataloghi-interattivi-dei-prodotti-igm/ http://blog.spaziogis.it/2008/07/31/nuovi-cataloghi-interattivi-dei-prodotti-igm/#comments Thu, 31 Jul 2008 08:22:01 +0000 Andrea Borruso http://blog.spaziogis.it/?p=468 Finalmente l’IGM ha aggiornato il catalogo interattivo dei propri prodotti. Per tutti gli utenti finali è una buona notizia, perché questo supera di gran lunga il precedente. Il cambiamento più evidente è tecnologico: da una tradizionale interfaccia html, ad una vera interfaccia di webmapping basata su OpenLayers con alle spalle un server WFS e (sembra) [...]]]> Finalmente l’IGM ha aggiornato il catalogo interattivo dei propri prodotti. Per tutti gli utenti finali è una buona notizia, perché questo supera di gran lunga il precedente.
    Il cambiamento più evidente è tecnologico: da una tradizionale interfaccia html, ad una vera interfaccia di webmapping basata su OpenLayers con alle spalle un server WFS e (sembra) un server di tilecaching.
    L’utilizzo di un client di webmapping opensource e di un protocollo standard interoperabile per l’accesso a dati spaziali, sono entrambi un belvedere; specie in un contesto così istituzionale.

    Il funzionamento di base è semplice:

    • si fa zoom-in su un’area di interesse
    • si fa click sull’area di cui si vuole conoscere la copertura dei prodotti IGM (contestualmente viene lanciata una richiesta WFS)
    • si ottiene sulla sinistra l’elenco delle tavole che cadono in quel punto
    • si clicca (ad esempio) sul tasto “ev.” – che si trova sulla destra del nome delle tavole – e viene restituita su mappa l’estensione spaziale della tavola

    Nuovi cataloghi interattivi dei prodotti IGM

    Questo in supersintesi. Ci sono anche altre funzioni, tra le quali segnalo la ricerca per toponimi.

    Le interfacce sono due:

    Buona visione.

    L'articolo Nuovi cataloghi interattivi dei prodotti IGM è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2008/07/31/nuovi-cataloghi-interattivi-dei-prodotti-igm/feed/ 5 Nuovi cataloghi interattivi dei prodotti IGM
    OpenLayers 2.6 RC1 ed una pagina d’esempi http://blog.spaziogis.it/2008/04/04/openlayers-26-rc1-ed-una-pagina-desempi/ http://blog.spaziogis.it/2008/04/04/openlayers-26-rc1-ed-una-pagina-desempi/#comments Fri, 04 Apr 2008 14:06:01 +0000 Andrea Borruso http://blog.spaziogis.it/2008/04/04/openlayers-26-rc1-ed-una-pagina-desempi/ Da pochi giorni è uscita la release 2.6 RC 1 di OpenLayers. Queste le novità più succose: Integration of the CloudAmber “Google Like” popups for advanced visual display of information in popups Resulting improvements throughout all popup code, including autosizing popups to the content they contain. Improved panning of commercial layers like Google Maps and [...]]]> Da pochi giorni è uscita la release 2.6 RC 1 di OpenLayers. Queste le novità più succose:

    • Integration of the CloudAmber “Google Like” popups for advanced visual display of information in popups
      • Resulting improvements throughout all popup code, including autosizing popups to the content they contain.
    • Improved panning of commercial layers like Google Maps and Yahoo! Maps
    • Animated panning of the map, using OpenLayers.Tween support Layer Image transitions, for keeping images visible when zooming to allow smoother transitions
    • Client side reprojection support using built in transformations for spherical mercator, or the proj4js library for other projections.
      • Support for reprojecting vector data layers
      • Support for reprojecting user-facing controls like mouseposition
      • Support for programatically reprojecting points and geometries
    • Improved OpenLayers Styling, including:
      • OpenLayers.Style, OpenLayers.StyleMap, OpenLayers.Rule support for improved feature-attribute based styling SLD read/write support
      • Support for reading and writing multiple versions of WMC.
    • Improved KML support, including KML styling support.
    • Improved GeoRSS Format support, including GeoRSS GML read support.
    • New ScaleLine Control for displaying visual scale
    • New NavigationHistory control for map history navigation
    • Localization/Better Internationalization support
    • Layer support for MapGuide Open Source
    • A number of new / improved handlers to make handling user
      • interactions easier
      • Handler.Hover
      • Handler.Click

    Infine segnalo un link. Si tratta di una serie di esempi di pagine di web-mapping costruite con OpenLayers, in una sessione di code hacking di gruppo di un giorno. Tra questi una bizzarra matrice dei possibili popup.

    L'articolo OpenLayers 2.6 RC1 ed una pagina d’esempi è apparso originariamente su TANTO. Rispettane le condizioni di licenza.

    ]]>
    http://blog.spaziogis.it/2008/04/04/openlayers-26-rc1-ed-una-pagina-desempi/feed/ 0