loader = {
const context = mutable dem.getContext("2d");
context.fillStyle = "#800000";
context.fillRect(0, 0, w, h);
tiles.forEach(([x, y, z], i, { translate: [tx, ty], scale: k }) => {
d3.image(url(...d3.tileWrap([x, y, z])), { crossOrigin: "Anonymous" }).then(
image => {
context.drawImage(image, (x + tx) * k, (y + ty) * k, k, k);
mutable dem = mutable dem;
}
);
});
return `loading ${tiles.length} tiles...`;
}