したがって、前述のように、ループが終了するのを待つのではなく、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 + ")");
});
}