2

因此,如前所述,我想强制转换在 for 循环中发生,而不是等待循环结束。我希望这样做的原因是因为我试图调用 d3 数据数组的索引。我的最终目标是让 3 个节点遵循 GPS 坐标路径,json 的布局如下 { ID: 1 [[ lat , lon , time],[lat2, lon, time2]], ID: 2...}因此,我试图检查转换中的时间跳跃,并且只收到最后一个条目。我正在使用它并用多边形地图覆盖它这是我正在处理的代码块

for(var i = 1; i < layers.length -1; i++){
        var t = layers[i].transition().duration(3000);
        var l = 0
        var j = 0
        var help = map.extent()[0].lon;
        var help2 = map.extent()[1].lon;
        var scale = (templon1 - templon2) / (help - help2); 

        t.selectAll(".t1")
        .attr("transform",function(d){
            x = map.locationPoint({lon: d[0][1], lat: d[0][0]});
            d = map.locationPoint({lon: d[5000][1], lat: d[5000][0]});
            l = d.x - x.x
            j = d.y - x.y
            return ("translate(" + l / scale + "," + j / scale + ")"); 

        });
        t.selectAll(".t2")
        .attr("transform",function(d){
            x = map.locationPoint({lon: d[0][1], lat: d[0][0]});
            d = map.locationPoint({lon: d[5000][1], lat: d[5000][0]});
            l = d.x - x.x
            j = d.y - x.y
            return ("translate(" + l / scale + "," + j / scale + ")"); 
        });
    }
4

0 回答 0