Javascript 当I';我在盘旋,而不是Voronoi细胞?

Javascript 当I';我在盘旋,而不是Voronoi细胞?,javascript,d3.js,voronoi,Javascript,D3.js,Voronoi,我正在寻找解决办法。我从这个例子开始: 在这里,您可以将地图悬停,同时看到线条 但是,即使您不在圆上,线条也会出现 我实际上是在寻找一种解决方案,当你将鼠标悬停在一个圆上时,线(或路径)才会显示 这就是我编写这部分代码的原因: var c = circles.selectAll("circle") .data(airports) .enter().append("svg:circle") .attr("cx", function(d, i) { r

我正在寻找解决办法。我从这个例子开始:

在这里,您可以将地图悬停,同时看到线条

但是,即使您不在圆上,线条也会出现

我实际上是在寻找一种解决方案,当你将鼠标悬停在一个圆上时,线(或路径)才会显示

这就是我编写这部分代码的原因:

var c = circles.selectAll("circle")
        .data(airports)
        .enter().append("svg:circle")
        .attr("cx", function(d, i) { return positions[i][0]; })
        .attr("cy", function(d, i) { return positions[i][1]; })
        .attr("r", function(d) { return d.r })
        .style("fill", function(d){ return d.color})
        .sort(function(a, b) { return countByAirport[b.iata] - countByAirport[a.iata]; });

         c.on("mouseover", function(e){
           g.select("path.arc")
            .style("display", "inherit")
           });
        });
        c.on("mouseout", function(e){
           g.select("path.arc")
            .style("display", "none");
        });
我可能离做这件事的好方法很远。在这里,使用我的代码,我可以在每个圆圈上悬停时显示所有路径。我也采取其他解决方案,我可以离开Voronoi(因为我不想使用细胞,也许你知道另一种更可行的方法…)

我的最终目标是找到这个答案,然后显示只与悬停的圆圈有关的路径。与Voronoi相比,我需要更高的精度,但在开始时,对于路径(例如:)来说,它似乎很好

我可以添加更多的代码,但总体来说,与上面的示例相同


谢谢大家!

这是您最终目标的解决方案-显示与悬停圆圈相关的路径

相关代码更改:

  • 在包含弧的
    中添加了一个类

    .enter().append("svg:g").attr('class', function(d) { return d.iata; });
    
  • 更改了圆圈的mouseover和mouseout事件,以显示基于在第一步中添加的类的弧

    circles.on("mouseover", function(d){
        console.log(d.iata);
       cells.select('g.'+d.iata).selectAll("path.arc")
        .style("display", "inherit")
    }).on("mouseout", function(d){
       cells.select('g.'+d.iata).selectAll("path.arc")
            .style("display", "none");
    });
    
  • 取下显示所有圆弧的CSS:

    #cells g:hover path.arc {
      display: inherit;
    }
    
  • 我可以添加更多代码,但我猜您可以在github页面上查看源代码


    希望这能帮上忙。

    很高兴我能帮上忙!