所以提到我想强制转换在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 + ")");
});
}