Я работаю в области визуализации геоданных с использованием D3js с раскладкой сил и картой Leaflet.С некоторой помощью других пользователей я смог собрать первую версию.Теперь я добавляю путь геоджона и хочу показать конкретную функцию в зависимости от имени узла, по которому я щелкаю, но сейчас, когда я щелкаю по узлу, отображаются все пути.
Вот чтоЯ хотел бы иметь:
Вот что у меня есть:
Я пытался перебирать имена путей вФункция, которую я вызываю, когда нажимаю на узлы:
function connectedNodes() {
var poligono = g.selectAll("path");
var result = datosPoli.features;
for (var i = 0; i < result.length; i++) {
var poligonoNombre = result[i].properties.Name;
}
if (toggle == 0) {
//Reduce the opacity of all but the neighbouring nodes
d = d3.select(this.parentNode).datum();
r = d3.select(this).datum();
nodesAll
.transition()
.style("opacity", function (o) {
return neighboring(d, o) | neighboring(o, d) ? 1 : 0;
})
;
lineas
.transition()
.style("opacity", function (o) {
return d.index==o.source.index | d.index==o.target.index ? 0.5 : 0;
})
;
poligono
.filter(function(d){
for (var i = 0; i < result.length; i++) {
var poligonoNombre = result[i].properties.Name;
return poligonoNombre;
}
return d.id === poligonoNombre;
})
.attr('fill-opacity', 1)
;
text
.transition()
.style('opacity', function(o){
return neighboring(d, o) | neighboring(o, d) ? 1 : 0;
})
toggle = 1;
} else {
// devuelve los nodos a la normalidadlos links invisibles
nodesAll
.transition()
.style("opacity", 1)
;
lineas
.transition()
.style("opacity", 0)
;
poligono
.attr("fill-opacity", 0)
;
text
.transition()
.style('opacity', 1)
;
toggle = 0;
}
}
Но не повезло.
У меня была проблема с загрузкой полного кода в blockbuilder, поэтому я загрузил его здесь: https://drive.google.com/file/d/1vp1l9brJ0MzLX3zV4-kyB6-IJEtvFiyB/view?usp=sharing