2016-07-27 2 views
0

J'ai cette fonction pour faire un d3-geomap qui est appelé quand mon application se charge pour la première fois. Mais comment mettre à jour la carte avec de nouvelles données sans redessiner une nouvelle carte?Comment mettre à jour (mais pas redessiner) un d3-geomap avec de nouvelles données

function buildMap(dataToShow){ 

     var map = d3.geomap.choropleth() 
       .geofile('https://d3-geomap.github.io//d3-geomap/topojson/world/countries.json') 
       .colors(colorbrewer.YlGnBu[9]) 
       .column('figure') 
       .format(function(d) {return (Math.round(d * 10)/10).toFixed(2)+"%";}) 
       .legend(true) 
       .unitId('ccode') 
       .domain(chartDomain) 
       .zoomFactor(5); 


     d3.select('#map') 
      .datum(dataToShow) 
      .call(map.draw, map); 
    } 

Répondre

1

Dites vos données dans une colonne appelée newData, vous devez alors faire l'appel suivant

map.column(newData).update() 

Cela devrait prendre soin de tout par lui-même.