2013-04-28 2 views
0

Я использую this RGraph example от InfoVis toolkit, чтобы нарисовать мои узлы. Это как мои узлы выглядят в формате JSON:JavaScript InfoVis: скрыть края до недостающих узлов

{"id":"parentId","name":"parent","adjacencies":[{"nodeTo":"missingChildId","nodeFrom":"parentId"}]} 

Проблема заключается в том, что missingChildId относится к не существующему узлу. В настоящее время InfoVis рисует край от узла parent узлу, который он называет «missingChildId».

Я не хочу, чтобы этот край был нарисован.

Аналогично, функция node.eachAdjacency дает узлы, которые не существуют на графике. Есть ли какой-то фильтр для сортировки этих недостающих узлов?

спасибо.

ответ

0

Кажется, что есть несколько проблем с вашими данными json.

1: Если вы укажете «nodeFrom» и «nodeTo» в смежности в ваших json-данных, тогда infovis создаст эти смежности. В идеальном случае вы не должны иметь такие смежности в своих json-данных.

2: Кроме того, nodeTo и nodeFrom в смежных точках указывают на идентификаторы узлов, на которые вы хотите ссылаться, и идентификаторы должны быть уникальными. Из ваших данных кажется, что «missingChildId» и «parentId» не уникальны. Вы уверены, что это уникальные идентификаторы?

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

Если вы не можете исправить свой json для 1-й проблемы, тогда одна работа вокруг - это скрыть те узлы с идентификатором «missingChildId».

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

rg.graph.eachNode(function(node){ 
    if(node.id == "missingChildId") 
     node.setData("alpha",0,"end"); 
}); 
rg.graph.animate({ 
    modes: ['node-property:alpha'], 
    duration: 500 
}); 

Аналогично каждый раз, когда вы перебирать узлы/примыкания графа вы должны отфильтровать все такие нежелательные узлы, используя их идентификатор. Вы также можете настроить свое настраиваемое свойство на нежелательных узлах.

node.setData("ignore",true); 

А затем отфильтруйте их, используя это свойство.

+0

«Аналогично каждый раз, когда вы перебираете узлы/смежности графика, вам придется отфильтровывать все такие нежелательные узлы, используя их идентификатор». Это то, что я сделал. Спасибо. –

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