d3.js Carte (<svg>) ajuster automatiquement dans Conteneur Parent et Redimensionner avec Fenêtre

Mise à JOUR: j'ai posté et accepté un travail entièrement solution dans les réponses de la section. Le code de cette section est utilisée comme référence pour la comparaison aux NON-code de TRAVAIL, mais ne doit pas être utilisé comme solution.


Je suis en train de construire un tableau de bord et d3.js pour ajouter une carte du monde qui intrigue les tweets en temps réel basé sur la géo-localisation.

La monde.json fichier référencé dans d3.json() de la ligne est téléchargeable ICI (on appelle monde-pays.json).

d3.js Carte (<svg>) ajuster automatiquement dans Conteneur Parent et Redimensionner avec Fenêtre

La carte est sur la page comme un conteneur SVG et est rendu à l'aide de la d3.

Ci-dessous sont les segments de code.

<div id="mapContainer">
    <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="500"></svg>
</div>

#mapContainer svg {
    display:block;
    margin:0 auto;
}
#mapContainer path {
  fill:#DDD;
  stroke:#FFF;
}

//generate US plot
function draw() {
    var map = d3.select("svg");
    var width = $("svg").parent().width();
    var height = $("svg").parent().height();

    var projection = d3.geo.equirectangular().scale(185).translate([width/2, height/2]);
    var path = d3.geo.path().projection(projection);
    d3.json('plugins/maps/world.json', function(collection) {
        map.selectAll('path').data(collection.features).enter()
            .append('path')
            .attr('d', path)
            .attr("width", width)
            .attr("height", height);
    });
}
draw();
latestLoop();

$(window).resize(function() {
    draw();
});

Mise à JOUR: j'ai mis à l'échelle de la carte pour une taille acceptable (pour mon particulier, la taille du navigateur), mais elle ne sera pas mise à l'échelle et au centre lorsque je change la taille de la fenêtre. SI, toutefois, je redimensionner la fenêtre, puis cliquer sur "actualiser", alors la carte sera centrée sur une fois que la page est rechargée. Cependant, puisque l'échelle est statique, il n'est pas ajustée correctement.

d3.js Carte (<svg>) ajuster automatiquement dans Conteneur Parent et Redimensionner avec Fenêtre

InformationsquelleAutor Jon | 2013-01-10