2015-04-17 24 views
0

这里是一个新手。D3添加缩放和平移到地图

我试图添加缩放和平移到this map。在管线163稍作调整

var zoom = d3.behavior.zoom() 
    .on("zoom",function() { 
     g.attr("transform","translate("+ 
      d3.event.translate.join(",")+")scale("+d3.event.scale+")"); 
     g.selectAll("path") 
      .attr("d", path.projection(projection)); 
}); 

svg.call(zoom) 

贴吧:我已经复制从这个代码“缩放和移动地图”从d3noob的网站this page部分

var zoom = d3.behavior.zoom() 
    .on("zoom",function() { 
     svg.append("g").attr("transform", 
     "translate(" + d3.event.translate.join(",") + 
     ")scale(" + d3.event.scale + ")"); 
     svg.append("g").selectAll("path") 
      .attr("d", myPath.projection(myProjection)); 
    });  

svg.call(zoom)  

但是,有没有缩放或平移行为,没有控制台错误。我错过了什么?谢谢你的帮助!

回答

3

想通了。问题是我没有放大正确的包含元素。一旦我这样设定,它就很好。

  • 做出<g>主要svg
  • 内把所有的地图里面的东西是<g>
  • 设置缩放功能转换和调整是<g>
  • 但对svg不是<g>设置.call