DataMaps.js - 网络天气图(入站和出站弧)

时间:2016-04-29 15:09:27

标签: javascript d3.js svg datamaps

我正在尝试使用arcs和circle选项创建网络天气地图。

我遇到的基本问题是网络中存在入站和出站连接,我希望能够将它们视为单独的实体。为了避免传入和传出的重叠,我尝试做一个简单的经度和纬度偏移( - .2每个)到"偏移"路径。我所看到的是他们互相交叉。

关于我如何能够做到这一点的任何想法?

Current Map Image

1 个答案:

答案 0 :(得分:0)

我有同样的问题看看https://github.com/cpmarvin/d3js_weathermap。如果你有并行链接,那么你需要获得btw节点的nr链接并做一个偏移。看看https://github.com/cpmarvin/d3js

希望它有所帮助。

.attr("d", function(d) {
    //find middle value of the link and calculate path
    var dx = d.target.x - d.source.x,
        dy = d.target.y - d.source.y,
        dr = Math.sqrt(dx * dx + dy * dy);

    var endX = (d.target.x + d.source.x) / 2;
    var endY = (d.target.y + d.source.y) / 2;

    var len = dr - ((dr/2) * Math.sqrt(3));
    endX = endX + (1 * len/dr);
    endY = endY + (-1 * len/dr);

    return "M" + d.source.x + "," + d.source.y + "L" + endX + "," + endY;
} )

这基于:

Display an arrow head in the middle of D3 force layout link