1 / 15

Progettazione di mappa geopolitica per YouTrend

Progettazione di mappa geopolitica per YouTrend. 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:

euclid
Download Presentation

Progettazione di mappa geopolitica per YouTrend

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Progettazione di mappa geopolitica per YouTrend Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco

  2. 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 evidenziarel’andamento dei partiti politici dal 1946 al 2008 in Italia. Tale applicativo è stato acquistato dalla società YouTrend.itche 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

  3. 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

  4. Alcune Videate: Mappa di TUTTE le REGIONI del 1946. Mappa di TUTTE le PROVINCE della REGIONESELEZIONATA 1946. Mappa di TUTTI i COMUNI della PROVINCIASELEZIONATA 1946. Mappa con SELEZIONATO il COMUNE di interesse. Grafico sull’andamentodei partiti tra le diverse aree della gerarchia. (destra) Grafico per anni di elezione. (in basso) Mappa di TUTTE le PROVINCE del 1946. Mappa di TUTTI iCOMUNI del 1946. (tempo di attesa intorno ai 120 secondi) ZOOM della mappa di TUTTI iCOMUNI del 1946. Mappa di TUTTE le REGIONI del 2008 colorate in base alle COALIZIONI. Mappa di TUTTE le REGIONI del 1946 in modalità DISTRIBUZIONE del partito “PCI”. 4 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco

  5. 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

  6. 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

  7. 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

  8. 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

  9. WebScraping (o parsing) Al cliente interessavano i dati aggregati a livello di comune, provincia, regione e nazione.  cometecnologia si è scelto di usare DAO-Hibernate. Database di supporto e backup: ”Elezioni” Parser Java Aggregatore Java Database finale: ”Elezioni_RPC” 9 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco

  10. 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 (ActionJSP) + 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

  11. 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}" /> …… redirect su JSP-JSTL chiamata delle ACTION-Java tramite AJAX-JSON ACTION mappate con le JSP tramite Struts 2 … <action name="ExtraAction_*" method="{1}" class="tp.web.ExtraAction"> <result name="regioniTutte"> /WEB-INF/jsp/elencoRegioniJson.jsp </result> </action> … privateList<DescrizioneDTO> regioniZG = newArrayList<DescrizioneDTO>(); /*creazione dei GET e SET*/ … publicString regioniTutte(){ … for(RegioneIstatDTO regioneJDBC : regioniJDBC) { … DescrizioneDTO r = newDescrizioneDTO(); … regioniZG.add(r); } … return"regioniTutte"; } rispostaAJAX_RegioniTutte (“ExtraAction_regioniTutte.action? parData="+parametro_data); 11 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco

  12. 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

  13. Creazione degli overlay con Google Maps Tabellacoordinate estringone 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 PolylineEncoderche le elabora, ne produce la stringonapoi memorizzata nel database e utilizzata lato client per l’overlay dell’area. 13 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco

  14. 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

  15. Grazie per l’Attenzione. 15 Politecnico di Torino - Tesi di Laurea Specialistica Pasturenzi Francesco

More Related