1

我正在使用 InfoVis 在我的一个项目中生成空间树可视化。由于这是一个交互式网站,因此每次用户更改偏好时都需要重新生成空间树。
这需要彻底清除空间树,并在同一空间重新绘制一棵新树。此外,图表区域可以随着页面大小的变化而调整大小。这需要重新绘制空间树。

我在绘制新的空间树之前尝试清除之前绘制的空间树时遇到了几个问题。我正在使用以下代码段来清除先前的绘图,但它失败得很惨。

st.clearNodesInPath();
st.labels.clearLabels(true);
st.canvas.clear();

如果有人可以指导我如何解决这个问题,那就太好了,因为这阻碍了我的进步。提前致谢。

在此处输入图像描述

4

1 回答 1

1

这是通过以下方式解决的。

InfoVis 图表将其元素绘制为父元素内的 HTML div 元素。问题是由于那些生成的 div 元素即使在清除数据结构之后仍然存在。这些在先前附加的图像中清楚地显示。

这是通过以下方式解决的。

var list = document.getElementById("idOfParentElement");
list.removeChild(list.childNodes[0]);

代码片段提取父 InfoVis 元素并清除它生成的所有子元素。这最终将清除将在其中绘制可视化的画布对象。

这解决了我的问题。希望这对遇到同样问题的人有所帮助。

于 2014-10-22T01:49:49.720 回答