我正在处理由D3.js创建的地图。我想出了如何放大地图并按照Mike Bostock's tutorial添加标签。但是,在我放大地图后,我不知道如何重新计算标签的坐标。
我真的不明白projection(data.geometry.coordinates)
是如何运作的。似乎projection()
将根据当前svg重新创建一对新坐标,并以某种方式自动为您放置标签。因此,我尝试在projection()
函数中再次运行clicked()
,但它不起作用。
以下是我正在处理的code,我使用的是d3版本4而非3版。
答案 0 :(得分:2)
如果您将城镇添加到g
选项(而不是svg
选项),那么它应该可以正常工作,因为缩放适用于该选择。
var selection = g
.selectAll("g.classTown")
.data(towns);