setTimeout(function() {
const simulation = d3
.forceSimulation(n2j.features)
.force("x", d3.forceX().x(f => projection(f.geometry.coordinates)[0]))
.force("y", d3.forceY().y(f => projection(f.geometry.coordinates)[1]))
.force(
"collide",
d3.forceCollide().radius(f => toRadius(+sizeInd[f.properties.id]))
);
for (const f of n2j.features) {
f.x = projection(f.geometry.coordinates)[0];
f.y = projection(f.geometry.coordinates)[1];
}
simulation.on("tick", () => {
circles.attr("cx", f => f.x).attr("cy", f => f.y);
});
invalidation.then(() => simulation.stop());
}, 3000)