Javascript D3:使用TopoJSON网格缩放到边界

Javascript D3:使用TopoJSON网格缩放到边界,javascript,d3.js,topojson,Javascript,D3.js,Topojson,我试图在我的D3地图上实现“缩放到绑定”功能。这就是我想到的问题: 我的问题是,实现似乎需要一个topoJSON网格。我不确定这是什么,以及如何调整我的代码来添加一个。这是我当前填充地图的方式: var mediumRes = g.append("g") .attr("id", "country-mediumRes"); d3.json("medium-res.json", function(collection) { mediumRes.selectAll("path")

我试图在我的D3地图上实现“缩放到绑定”功能。这就是我想到的问题:

我的问题是,实现似乎需要一个topoJSON网格。我不确定这是什么,以及如何调整我的代码来添加一个。这是我当前填充地图的方式:

var mediumRes = g.append("g")
    .attr("id", "country-mediumRes");

d3.json("medium-res.json", function(collection) {
    mediumRes.selectAll("path")
    .data(collection.features)
    .enter().append("path")
    .attr("class", "country-mediumRes")
    .attr("d", path);
}); 
要计算我所在国家/地区的path.bounds,我的代码似乎需要网格。在本文中,我认为它与这一行代码有关:

g.append("path")
    .datum(topojson.mesh(us, us.objects.states, function(a, b) { return a !== b; }))
    .attr("class", "mesh")
    .attr("d", path);

如何修改代码以正确创建topoJSON网格?顺便说一句,网格是做什么的?

你不需要网格,那只是为了州的笔划。看看这个bl.ocks无网格:你好Gerardo-谢谢你的评论和分享你的区块。我之所以尝试添加网格,是因为我假设我需要topoJSON来实现这一点。我不断收到以下错误消息:
uncaughttypeerror:path.bounds不是一个函数
是不是我必须加载topoJSON而不是geoJSON的错误?如果我的数据不是topoJSON,如何缩放到边界框?我仍然不明白为什么会出现此错误,以及path.bounds函数无法识别的原因。边界不是使用网格计算的-边界是使用单击的geojson功能计算的。正如@GerardoFurtado所述,在本例中,网格仅用于笔划。您可以缩放到网格*(与任何其他geojson功能一样),因为网格一经创建就只是geojson,但这将是一个不必要的复杂问题,因为网格是多段线,而不是多边形,即使使用填充,鼠标事件也不会按预期工作(因为每个边界段都被填充,而不是每个地理单元)*您可以将网格作为一个整体进行缩放,单个多边形将非常困难