Центрирование карты в d3 по объекту geoJSON

В настоящее время в d3, если у вас есть объект geoJSON, который вы собираетесь рисовать, вы должны масштабировать и переводить его, чтобы получить желаемый размер, и перевести, чтобы отцентрировать его. Это очень утомительная задача проб и ошибок, и мне было интересно, если кто-нибудь знает лучший способ получить эти значения?

Так, например, если у меня есть этот код

var path, vis, xy;
xy = d3.geo.mercator().scale(8500).translate([0, -1200]);

path = d3.geo.path().projection(xy);

vis = d3.select("#vis").append("svg:svg").attr("width", 960).attr("height", 600);

d3.json("../../data/ireland2.geojson", function(json) {
  return vis.append("svg:g")
    .attr("class", "tracts")
    .selectAll("path")
    .data(json.features).enter()
    .append("svg:path")
    .attr("d", path)
    .attr("fill", "#85C3C0")
    .attr("stroke", "#222");
});

Как, черт возьми, я могу получить .scale (8500) и .translate ([0, -1200]), не переходя понемногу?

Ответы на вопрос(11)

Ваш ответ на вопрос