因此,如前所述,我想强制转换在 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 + ")");
});
}