キャンバスに適切に収まるように翻訳された地図があります。
ズームする方法を実装しようとしていますが、うまくいきますが、マウスやキャンバスの中心ではなく、ズームインすると中心から離れます。
これは私のコードです:
function map(data, total_views) {
  var xy = d3.geo.mercator().scale(4350),
      path = d3.geo.path().projection(xy),
      transX = -320,
      transY = 648,
      init = true;
  var quantize = d3.scale.quantize()
    .domain([0, total_views*2/Object.keys(data).length])
    .range(d3.range(15).map(function(i) { return "map-colour-" + i; }));
  var map = d3.select("#map")
        .append("svg:g")
        .attr("id", "gb-regions")
        .attr("transform","translate("+transX+","+transY+")")
        .call(d3.behavior.zoom().on("zoom", redraw));
  d3.json(url_prefix + "map/regions.json", function(json) {
    d3.select("#regions")
        .selectAll("path")
            .data(json.features)
        .enter().append("svg:path")
            .attr("d", path)
            .attr("class", function(d) { return quantize(data[d.properties.fips]); });
  });
  function redraw() {
    var trans = d3.event.translate;
    var scale = d3.event.scale;
    if (init) {
      trans[0] += transX;
      trans[1] += transY;
      init = false;
    }
    console.log(trans);
    map.attr("transform", "translate(" + trans + ")" + " scale(" + scale + ")");
  }
}
最初の翻訳を新しい翻訳 ( trans) に追加すると、最初のズームでは機能しますが、その後のすべてのズームでは悪化することがわかりました。何か案は?