Mappa in Flash! Su MySpace!

Vi ricordate che appena 6 giorni fa vi annunciavo l'apertura della pagina su myspace, e che stavo cercando il modo di inserire la mappa? Bene, ora è pronta!



Potete inserirla sul vostro sito, blog o myspace usando questo codice:
Aggiornamento: Per MySpace ora potete usare anche l'applicazione myspace.

<object type="application/x-shockwave-flash"
 width="98%" height="450"
 data="http://stasera.altervista.org/umap">
<param name="movie" value="http://stasera.altervista.org/umap" />
</object>

Se non vi piace il flash, c'è sempre la versione html, da inserire in un frame.

AGGIORNAMENTO: ora ho aggiunto il bottone "personalizza e condividi la mappa", per generare e personalizzare facilmente il codice per inserire la mappa. Genera anche il codice per la mappa html!

Se volete continuare a leggere, vi racconterò le mie avventure nello sviluppo dell'applet (è il mio primo flash!). Però vi avverto che da qui in poi il post si farà pò tecnico...

Per prima cosa ho scaricato la beta di Flex Builder per Linux: un modulo per Eclipse che aiuta a programmare in questo strano linguaggio. Un file sorgente per flex è un XML, in cui si possono inserire elementi grafici un po' come se fosse HTML. All'interno di un tag si può includere uno script in linguaggio ActionScript, che eseguirà le azioni. Il linguaggio è simile al Java, per cui non ho avuto particolari difficoltà a comprenderlo, e sono stato aiutato da guide e esempi di codice trovati qua e là su internet. Inoltre è da notare che il cuore di Flex, l'SDK, è open source.

Però la libreria g_map di AFC non funziona con Flex, quindi ho dovuto cercare qualcos'altro. Ho trovato che Yahoo! fornisce una libreria flash per le sue mappe, compatibile con Flex. Anzi due: La prima dovrebbe essere la versione aggiornata, però non contiene moduli per importare kml o rss, e non ha un'interfaccia facile per creare "finestrelle" cliccando su un marcatore. La seconda invece dovrebbe essere obsoleta, però almeno consente di importare i marcatori da un rss con geotag, e sono riuscito a creare una semplice mappa. Purtroppo il risultato non era un granché, perché cliccando sui marcatori viene mostrato solo il titolo, senza altre informazioni.

Allora ho fatto un altro giro su AFC e ho trovato UMap, simile al precedente ma compatibile con Flex. In poco tempo ho creato la mappa: con questa libreria bastano poche decine di righe di codice per mostrare una mappa che carica i marcatori da un file kml. Però subito la mappa non mi piaceva, allora ho configurato finemente l'aspetto dei marcatori, delle finestre, le ombre, le trasparenze... Ho aggiunto anche un pannello a scomparsa, come nel "frame html".

Però c'erano ancora alcuni problemi con i caratteri unicode; inoltre uscendo dalla modalità "locale" sono saltati fuori dei problemi con i permessi di Flash. Il Flash infatti ha una strana gestione dei permessi per l'inclusione di file: per poter caricare i dati presenti nel dominio A in un flash eseguito sul sito B, sul sito A deve essere presente il file "crossdomain.xml", contenente la lista dei siti autorizzati a prelevare contenuti. Solo se B è nella lista (che viene scaricata automaticamente prima di una richiesta), la virtual machine di Flash autorizza a scaricare il file. Inoltre c'erano dei problemi scaricando i kml da questo sito, per cui ho preferito passare da Yahoo! Pipes, è più veloce e mi fa risparmiare banda e risorse. Però pipes è configurato in modo da consentire di scaricare via Flash solo i feed rss; per cui ho dovuto modificare lo script in modo da parsare il feed e estrarre le informazioni per generare i marcatori.

Comunque alla fine tutto si è risolto e il risultato potete vederlo.
Ma non fu così che ho conosciuto vostra madre :)
[se non capisci questa frase non hai mai visto questo]

Scambio banner etico StradaAlternativa