2014-10-09 5 views
1

Я использую InfoVis для создания визуализации дерева пространства в одном из моих проектов. Поскольку это интерактивный веб-сайт, Space Tree необходимо регенерировать каждый раз, когда пользователь изменил настройки.
Для этого необходимо, чтобы Space Tree было полностью очищено и повторно нарисовало новое дерево в том же пространстве. Кроме того, область диаграммы может быть изменена по размеру, поскольку размер страницы меняется. Это требует повторного рисования Пространственного дерева.
Как удалить ранее вырисованное информационное пространство InfoVis

Я столкнулся с несколькими проблемами, пытаясь очистить ранее нанесенное пространство Дерево, прежде чем рисовать новый. Я использую следующий сегмент кода, чтобы очистить предыдущий рисунок, но он терпит неудачу.

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

Если кто-то может вести меня, как решить эту проблему, что было бы здорово, так как это блокирует мой прогресс. Заранее спасибо.

enter image description here

+0

Как вы можете видеть на прилагаемом скриншоте, предыдущие экземпляры не очищаются. Они продолжают оставаться на экране. – Aviro

ответ

1

Эта проблема была решена следующим образом.

Диаграмма InfoVis рисует его элементы как элементы div HTML в родительском элементе. Проблема заключалась в том, что остатки этих сгенерированных элементов div даже после очистки структур данных. Это было четко показано на ранее прикрепленных изображениях.

Это решение было разрешено следующим образом.

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

код фрагмент извлекает родительский элемент InfoVis и очищает все это сгенерированные дочерние элементы. Это в конечном итоге очистит объект canvas, где будет визуализироваться визуализация.

Это разрешило мою проблему. Надеюсь, это поможет всем, кто имеет такую ​​же проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^