map2 = {
const vx = rangeRotationX, vy = -0.000;
const context = DOM.context2d(width, height);
const path = d3.geoPath(projection, context);
const startingX = 0;
const startingY = 0;
const tStart = performance.now();
while (true) {
const t = performance.now() - tStart;
projection.rotate([startingX+(vx * t), startingY + (vy * t)]);
context.save();
context.beginPath();
context.globalAlpha = 1;
context.beginPath(), path(graticule), context.strokeStyle = "#ccc", context.stroke();
context.beginPath(), path(land), context.fillStyle = "#000", context.fill();
context.beginPath(), path(borders), context.strokeStyle = "#AAA", context.stroke();
context.beginPath(), path(circles), context.fillStyle = "tomato", context.fill() ;
context.beginPath(), path(night2()), context.fillStyle = "rgba(0,0,255,0.3)", context.fill();
context.beginPath(), path(sphere), context.strokeStyle = "#000", context.stroke();
context.globalAlpha = 0.3;
circles.forEach(element => {
context.beginPath(), path(element()), context.fillStyle = "tomato", context.fill(), context.opacity = 0.2 ;
});
context.globalAlpha = 1;
context.lineWidth = 1;
context.restore();
yield context.canvas;
context.clearRect(0, 0, width, height);
}
}