Progettazione di mappa geopolitica per YouTrend * 16/07/96 Progettazione di mappa geopolitica per YouTrend Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco *
Politecnico di Torino - Tesi di Laurea Specialistica * 16/07/96 Introduzione La “Mappa geopolitica di YouTrend” è il risultato di un tirocinio durato circa 6 mesi. E’ stato un progetto chiavi in mano e mi sono occupato: della parte di scraping dei dati dallo storico del Ministero dell’Interno e dei file KML; progettazione e realizzazione dei tre database; del lato server e client; interazioni con il cliente per la risoluzione di problemi riguardanti per lo più l’aggregazione dei dati. L’elaborato riguarda la creazione di un applicativo web progettato per evidenziare l’andamento dei partiti politici dal 1946 al 2008 in Italia. Tale applicativo è stato acquistato dalla società YouTrend.it che si occupa di analisi geopolitiche e consulenza nell’ambito politico. Per progettare tale applicativo sono stati utilizzati i dati estratti dal Ministero dell’Interno aggregati a livello nazionale, regionale, provinciale, comunale e inseriti su una cartina di Google Maps appositamente adattata allo scopo. Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco *
Politecnico di Torino - Tesi di Laurea Specialistica * 16/07/96 Obiettivi raggiunti creazione di un innovativo applicativo web di facile consultazione politica; connettività multipla e simultanea senza un drastico calo delle prestazioni grazie all’uso di tabelle di cache; l’ideazione di un nuovo modo di consultare dati politici differente dalla classica tabella o lungo elenco ma attraverso una vera e propria mappa colorata in base al partito vincente; possibilità di conoscere la distribuzione politica attraverso la sola colorazione sfumata delle singole aree sulla mappa; utilizzo delle API di Google Maps in un modo del tutto nuovo. 3 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##
Politecnico di Torino - Tesi di Laurea Specialistica * 16/07/96 Alcune Videate: Mappa di TUTTI i COMUNI del 1946. (tempo di attesa intorno ai 120 secondi) ZOOM della mappa di TUTTI i COMUNI del 1946. Mappa di TUTTE le REGIONI del 1946 in modalità DISTRIBUZIONE del partito “PCI”. Mappa di TUTTE le REGIONI del 2008 colorate in base alle COALIZIONI. Mappa di TUTTE le PROVINCE del 1946. Grafico sull’andamento dei partiti tra le diverse aree della gerarchia. (destra) Grafico per anni di elezione. (in basso) Mappa di TUTTE le PROVINCE della REGIONE SELEZIONATA 1946. Mappa di TUTTE le REGIONI del 1946. Mappa con SELEZIONATO il COMUNE di interesse. Mappa di TUTTI i COMUNI della PROVINCIA SELEZIONATA 1946. 4 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##
Tecnologie e Frameworks utilizzati * 16/07/96 Tecnologie e Frameworks utilizzati Per la progettazione sono state utilizzate principalmente le API di Google Maps versione 3 insieme alle seguenti tecnologie e Frameworks: Java J2EE per tutta la parte di back-end, utilizzo dei DTO e DAO per il reperimento dei dati dal database e passaggio dei risultati al client; Framework Struts 2 per la mappatura delle chiamate back-end (lato server) con la parte client. Vengono mappate le varie JSP con le Action associate; Framework Spring per IOC (Inversion Of Controls) cioè automatizzazione del ciclo di vita degli oggetti. L’inizializzazione di oggetti tipo Hibernate, JDBC e Web Server è demandata a Spring e vengono utilizzati come proprietà, cone metodi get() e set(). Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco *
Tecnologie e Frameworks utilizzati * 16/07/96 Tecnologie e Frameworks utilizzati Hibernate per ORM(Object Relational Mapping), cioè per la mappatura della base di dati in classi Java. Utilizzo dei DAO; JDBC per l’accesso diretto al database MySql; JavaScript e JQuery per l’utilizzo delle API di Google Maps, Google Charts e per la realizzazione di effetti grafici e sliding; AJAX+JSON per l’interazione tra client e server in Cross-Domain nello scambio di messaggi per il popolamento della mappa e dei vari grafici in base ai filtri scelti dall’utente. HTML5 + CSS3 per il layout e stile dell’applicativo. Sono stati inseriti anche dei commenti condizionali per la risoluzione dei problemi tra i browsers e per il riconoscimento dei dispositivi che supportano WebKit. Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco *
Ambienti di sviluppo e analisi dei dati * 16/07/96 Ambienti di sviluppo e analisi dei dati Come ambienti di sviluppo sono stati scelti: Eclipse IDE J2EE e MySQL; SqlYog per i test delle query SQL utilizzate e per backup; PhpMyAdmin per la gestione remota e locale del database; Tomcat 6.0 come Web Server. Per l’ analisi dei dati sono stati creati dei grafici utilizzando le API di Google Charts Tools. E’ stato possibile così evidenziare l’andamento dei vari partiti politici nei vari anni richiesti dall’utente per una specifica area geografica. Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco *
WebScraping (o parsing) * 16/07/96 WebScraping (o parsing) Per il reperimento dei dati dal sito del Ministero dell’Interno sono stati creati degli appositi parser che importavano il contenuto dei link attraversati, nel database di supporto e backup “Elezioni”. La creazione del parser è stata abbastanza complessa perché le pagine del Ministero dell’Interno sono state strutturate in modo diverso negli anni: dal 1946 al 1992, la struttura del layout è divisa in: Area, Circoscrizione, Provincia e Comune. dal 1994 al 2001 è diventata: Area, Circoscrizione, Collegio e Comune. dal 2006 al 2008 invece è uguale al 1946–1992, però con le coalizioni: destra, sinistra e centro. 8 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##
WebScraping (o parsing) * 16/07/96 WebScraping (o parsing) Al cliente interessavano i dati aggregati a livello di comune, provincia, regione e nazione. come tecnologia si è scelto di usare DAO-Hibernate. Parser Java Database di supporto e backup: ”Elezioni” Aggregatore Java Database finale: ”Elezioni_RPC” 9 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##
Passaggio dei valori Client-Server * 16/07/96 Passaggio dei valori Client-Server Lato client: chiamate Ajax per rendere più fluida la consultazione facendo reloading parziali; tecnologia JSON per risolvere il problema di Cross-Domain tra il sito YouTrend (“front-end”: index.html) e il web server Tc-Web ( “back-end” + database). Lato server: utilizzo di Java J2EE + Struts 2 (ActionJSP) + JSTL Lato database: utilizzo di DTO-JDBC lato consultazione della mappa; utilizzo di DAO-Hibernate lato amministratore. 10 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##
Passaggio dei valori Client-Server * 16/07/96 Passaggio dei valori Client-Server <j:array items="${regioniZG}" var="regione"> <j:object> <j:property name="data" value="${regione.data}" /> <j:property name="coordinate" value="${regione.coordinate}" /> <j:property name="legenda_colore" value="${regione.legenda.colore}" /> <j:property name="legenda_partito" value="${regione.legenda.partito}" /> …… chiamata delle ACTION-Java tramite AJAX-JSON ACTION mappate con le JSP tramite Struts 2 redirect su JSP-JSTL … <action name="ExtraAction_*" method="{1}" class="tp.web.ExtraAction"> <result name="regioniTutte"> /WEB-INF/jsp/elencoRegioniJson.jsp </result> </action> private List<DescrizioneDTO> regioniZG = new ArrayList<DescrizioneDTO>(); /*creazione dei GET e SET*/ … public String regioniTutte(){ for (RegioneIstatDTO regioneJDBC : regioniJDBC) { DescrizioneDTO r = new DescrizioneDTO(); regioniZG.add(r); } return "regioniTutte"; rispostaAJAX_RegioniTutte (“ExtraAction_regioniTutte.action? parData="+parametro_data); 11 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##
Creazione degli overlay con Google Maps * 16/07/96 Creazione degli overlay con Google Maps Le coordinate delle regioni, province e comuni per la creazione degli overlay(poligoni) sono state trovate in rete in formato KML. Alcuni di questi file sono stati scoperti essere incompleti e/o errati perciò è stata scritta una funzione ad-hoc, per il reperimento e generazione dei punti mancanti, allo scattare dell’evento click sulla mappa (operazione eseguita a mano). 12 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##
Creazione degli overlay con Google Maps * 16/07/96 Creazione degli overlay con Google Maps Tabella coordinate e stringone Google Lato Client: Vengono usate le API di Google Maps che si occupano della decodifica delle “stringone” [google.maps.geometry.encoding.decodePath()] e della creazione dei poligoni [google.maps.Polygon()] in cui vengono impostati opacità, colore e abilitazione al evento click per la navigazione in mappa tra le diverse aree. Eventualmente al poligono creato viene associato un marker custom in cui compare un icona descrittiva del nome dell’area sottostante [google.maps.Marker() e google.maps.MarkerImage()]. Lato Server: Viene fatto un check sull’attributo “stringa_Google” per l’area interessata, se risulta inesistente(null), viene chiamata una procedura che legge tutte le coordinate di quella specifica area, ne fa una cernita in base al rispetto di una distanza minima pre-impostata e le passa al metodo createEncoding() della classe PolylineEncoder che le elabora, ne produce la stringona poi memorizzata nel database e utilizzata lato client per l’overlay dell’area. 13 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##
Politecnico di Torino - Tesi di Laurea Specialistica * 16/07/96 Conclusioni Attualmente l’applicativo è stato acquistato dalla società YouTrend. L’applicativo è attualmente online ed è di libero accesso. I browser supportati sono quelli di ultima generazione. JavaScript deve essere attivo. Altrimenti la parte AJAX/JSON e le API di Google non funzionano. Problemi riscontrati: Durante lo sviluppo sono stati riscontrati problemi per il caricamento della Mappa Google durante l’operazione di filtraggio a livello di comuni. Questo perchè il numero di poligoni (overlays) da creare / caricare e le relative informazioni di contorno sono notevoli. Migliorie future: migliorare il filtraggio a livello di comuni; di aumentare le performance si ha intenzione di di più utenti connessi; aggiunta di nuovi grafici per effettuare analisi statistiche più mirate e precise; integrazione di report personalizzabili dall’utente con possibilità di download in PDF e Excel; implementazione di un’area di accesso a crediti; sviluppo di una web-app per tutti i dispositivi che supportano WebKit (Android, iPhone e iPad). 14 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##
Grazie per l’Attenzione. * 16/07/96 Grazie per l’Attenzione. 15 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco * ##