GithubHelp home page GithubHelp logo

advanced-mapping-tool's People

Contributors

jenkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

advanced-mapping-tool's Issues

Embedding options

Possibilità di abilitare la pubblicazione del logo solo in modalità ?embed
Includere nel conf in // Embed options la funzionalità di logo active: true/false

Icona del pulsante fullscreen

Viene incluso nel css relativo, compattato da grunt nel file dataninja-advanced-mapping-tool.min.css, ma con il percorso sbagliato, quello della libreria in bower_components/. Ovviamente questa cartella non esiste quando si clona il repo, si crea con il comando bower install.

Bisogna fare in modo che quando grunt concatena e minifica il css, i percorsi relativi agli assets delle librerie vengano sostituiti da quelli relativi corretti dell'applicazione in deploy (le immagini in img/). Anche perché le immagini necessarie sono già correttamente copiate in img/.

Il problema comunque sembra esistere solo per il controllo fullscreen.

Livelli delle tile selezionabili

Al pari del menù dei livelli geografici, si potrebbe lasciare all'utente la possibilità di scegliere le tile da visualizzare con un menù dedicato.

Label toolip dinamica

Questione collegata a #10 : se si cambiano le variabili da mostrare sulla mappa, forse dovrebbe cambiare in accordo anche la label del tooltip che appare quando il mouse si muove sui territori.

Descrizione legenda dinamica

In questo momento il testo di descrizione nella legenda è fisso, ma in realtà dovrebbe dipendere dal dataset selezionato.

Geocoding response enhancement

Al momento il geocoder si limita a zoomare la mappa alle prime coordinate ricevute da Nominatim. Se c'è una choropleth attiva, dovrebbe almeno verificare che a quelle coordinate corrisponda un territorio e in caso affermativo aprire la relativa infowindow.

Possibile plugin utile: https://github.com/mapbox/leaflet-pip

File di configurazione e grunt

Non ha molto senso che il file di configurazione sia minificato e concatenato con gli altri, perché questo richiede necessariamente grunt per avere una versione di deploy della mappa.

Deve essere possibile per l'utente clonare il repository (senza quindi dipendenze), modificare il file di configurazione e avere subito la mappa finale (composta dai file index.html + dataninja-advanced-mapping-tool.lib.min.js + dataninja-advanced-mapping-tool.conf.js + dataninja-advanced-mapping-tool.min.js + dataninja-advanced-mapping-tool.min.css ed eventualmente dalle cartelle data/ + geo/ + img/).

Dataset language

Oltre che servire per la formattazione di numeri e date in output, la lingua dovrebbe servire anche per gestire il parsing dei dati, a livello di dataset (gestione corretta di virgole decimali e punti delle migliaia per l'italiano e viceversa per l'inglese).

Passaggio animato da un dataset all'altro

Quando si selezionano i dati da mostrare sulla mappa (colori nel caso della choropleth), la variazione è istantanea. Ci starebbe bene un'interpolazione cromatica tra il colore di partenza e quello di arrivo...

Column filter in view template as simple array

Si può usare una funzione custom per filtrare le colonne da mostrare nella infowindow, ma per filtri semplici sarebbe meglio supportare un semplice array delle colonne che si vogliono / non si vogliono mostrare.

Font del testo come input

Dare la possibilità di impostare il font del testo (e altre caratteristiche tipografiche) nel file di configurazione, in modo da migliorare al massimo l'integrazione della mappa all'interno di una pagina specifica.

Raggruppamento variabili nella infowindow

La view a tabella mostra una riga per ogni colonna del dataset, ma spesso alcune colonne del dataset possono essere raggruppate e la infowindow dovrebbe poter mostrare questi due livelli.

Si può aggiungere nel file di configurazione la specificazione di questi raggruppamenti seguendo una sintassi simile a quella dei file di grunt: un oggetto che ha come chiavi i nomi dei gruppi e come valori un array dei nomi delle colonne appartenenti a ogni gruppo.

La tabella finale avrebbe la forma:

  • Key1 | Value1
  • Group1
  • Key2 | Value2
  • Key3 | Value 3
    ...

Bubble map

La mappa così com'è nasce con le choropleth in mente, ma condivide con altri tipi di visualizzazione molti elementi, come il join tra dati e territori, ecc. Quindi una generalizzazione immediata è quella di sostituire i colori dei territori con la dimensione di bolle posizionate sui loro centri geometrici (con opportuna gestione dei territori concavi).

Testo lungo di descrizione

Ispirandosi a questo lavoro di Matteo Fortini si potrebbe facilmente inserire un div laterale (destra o sinistra, ma anche sopra o sotto) con contenuto statico, di commento, descrizione e presentazione della mappa.

cc @nelsonmau

Numero bin per variabile di un dataset

Al momento il numero di bin per disegnare la choropleth è fissato a livello di dataset, ma all'interno dello stesso dataset possono esserci colonne con ordini di grandezza dei valori molto diversi tra loro e questo può causare classi vuote o ripetute.

Ci sono due strade per risolvere questo problema:

  • permettere all'utente di specificare il numero di bin per ogni colonna (con un valore di default pari a quello associato al dataset;
  • provare a rendere automatico il processo: se il calcolo degli intervalli porta a intervalli ripetuti, si eliminano le ripetizioni e si rifà il calcolo con un numero minore di bin.

Se entrambe le strade sono fattibili, probabilmente la cosa migliore è implementare la prima e ricadere nella seconda se il numero di bin indicato non è buono.

Geocoder on mobile

Now geocoder control is disabled on mobile, but it can be added under the map before the infowindow in widget mode.

Join tra dati e layer geografici

Al momento i geojson dei territori (file statici) e i dati associati (api di dkan) sono caricati indipendentemente e poi joinati mediante il codice istat. Il join avviene in maniera banale, con un doppio ciclo sui due array e una semplice comparazione di uguaglianza. C'è un algoritmo più furbo, rapido ed efficiente? Magari in una libreria ad-hoc? Tipo questa: http://www.thomasfrank.se/SQLike/

Original: https://github.com/Dataninja/confiscatibene-choropleth/issues/24

Supporto per caricamento dati da CKAN

Al momento il caricamento dei dati dalle API di Dkan funziona benone (same-origin policy permettendo). In teoria dovrebbe funzionare anche con le API di Ckan out-of-the-box, ma va verificato e introdotto un dataSource apposito nel file di configurazione.

Livelli geografici di uso comune

In questo momento la cartella predefinita per gli shape da usare come livelli vettoriali è geo/ (per ora file geojson).

Molti file sono però standard: i confini nazionali del mondo, le suddivisioni regionali, provinciali e comunali dell'Italia, ecc. Contemporaneamente però non ha senso includerli nella mappa stessa, perché non è detto che servano.

Suggerisco quindi di creare un repo a parte con tutti i file che possono servire, da mantenere indipendentemente dalla mappa. Poi questo repo sarà una dipendenza della mappa (scaricabile via bower) e un task di grunt avrà il compito di leggere il file di configurazione e includere nella mappa compilata i soli file necessari.

cc @aborruso

Sviluppo di un editor della mappa

Ora che la configurazione della mappa è completamente separata dalle funzionalità della mappa, si può pensare di sviluppare un editor visuale del file di configurazione, che permetta di impostare tutti i parametri e caricare tutti i file necessari (shape, dati e immagini) in modalità WYSIWYG.

In prospettiva potremmo seguire il modello di business di slid.es: libreria revealjs open source, ma editor avanzato freemium (uso di base gratuito previa registrazione, uso avanzato a pagamento).

cc @nelsonmau

Zoom constraints on geolayer

Ci dovrebbe essere la possibilità di bloccare lo zoom a un dato valore in base al livello geografico selezionato, così che viste panoramiche non possano essere interpretate a livello locale...

HTML tags in descriptions

Per i dataset, le description vengono usate sia nel testo visualizzato, sia in attributi title di alcuni elementi. In quest'ultimo caso eventuale markup viene gestito male, bisognerebbe eliminarlo prima di valorizzare il title.

Livello grafo di territori a richiesta

Sulla falsariga del livello dei marker puntuali come da #15 , si può prevedere un layer che visualizzi relazioni uno-a-uno tra territori sotto forma di connessioni. Un grafo sovrapposto alla mappa, con i territori come nodi, un po' come il grafo di relazioni di amicizia di facebook: https://www.facebook.com/notes/facebook-engineering/visualizing-friendships/469716398919 :)

Qualche suggestione in questa discussione su fb: https://www.facebook.com/alessio.cimarelli/posts/10152233217122026 @nelsonmau @aborruso

Original: https://github.com/Dataninja/confiscatibene-choropleth/issues/38

Traduzione

Molte delle stringhe sono personalizzabili nel file di configurazione, ma non tutte. Da pensare invece a come supportare la traduzione delle stringhe che fanno parte dei dati (label, nomi colonne, ecc.).

Bin di ampiezza nulla nella legenda

È possibile avere dei bin di ampiezza nulla all'inizio o alla fine della serie (es. 0 - 0). In questo caso la label dovrebbe essere semplicemente 0.

Template per i contenuti della infowindow

A parte header (pulsanti di condivisione ed eventuali downloads) e footer (licenza dei dati), la parte centrale della infowindow si può personalizzare mediante template.

Al momento è definito solo il modello 'table', ma si possono definire template per contenuti multimediali (clicco sul territorio e mi si apre un'immagine, una gallery, un video embeddato, una timeline, ...) e per grafici (torte, barre, istogrammi, ...).

Per i grafici userei qualche libreria costruita su d3, come d4: http://visible.io/

Posizione della infowindow

Al momento l'infowindow è interna alla mappa (in basso a destra), ma in modalità widget è esterna sotto la mappa. Si può generalizzare la cosa permettendo di specificare nel file di configurazione dove posizionare la infowindow: all'interno, al di sotto o a destra (o sopra o a sinistra).

File di configurazione vuoto (sample)

Come è classico per le configurazioni di base dei CMS, nel repo si dovrebbe avere un file di configurazione vuoto (con la sola struttura, dataninja-advanced-mapping-tool.conf.sample.js) che l'utente copia e modifica in un file dataninja-advanced-mapping-tool.conf.js specifico.

Cartella demo

Le mappe pronte e finite (caratterizzate da uno specifico file di configurazione e da livelli geografici, dati e immagini) potrebbero essere pubblicate nel repo in una cartella demo, magari visualizzabile mediante le github pages.

Template per i servizi di tileserver

Da aggiungere un oggetto tileSources nel file di configurazione per poter specificare un servizio di tileserver direttamente con il nome (senza dover specificare ogni volta il template dell'url del servizio).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.