我有一个带有映射圆的d3.js equirectangular投影。单击菜单后,地图将变为带有过渡的正交投影。 在过渡期间,我想删除圆圈并在过渡结束时重绘它们。删除工作正常,但我不知道如何再次呼叫圈子。
以下是更改功能的代码:
function update(option) {
var path = d3.geo.path()
.projection(option.projection);
svg.selectAll("path").transition()
.duration(3000)
.attr('d', path)
.each("start", function() { svg.selectAll("circle").remove("circle"); //remove all circles on end
})
.each("end", function() { svg.append("circle")
.attr("circle")
.attr("cx", function(d) {
return projection([d.long, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.long, d.lat])[1];
})
.attr("r", function(d) {
if(d.capacity == '-'){return 0}
return rScale(parseInt(d.capacity));
})
});
}
感谢您的帮助。