function map(feature) {
const outline = ({type: "Sphere"});
const projection = d3.geoNaturalEarth1();
const [[x0, y0], [x1, y1]] = d3.geoPath(projection.fitWidth(width, outline)).bounds(outline);
const height = Math.ceil(y1 - y0);
const l = Math.min(Math.ceil(x1 - x0), height);
projection.scale(projection.scale() * (l - 1) / l).precision(0.2);
const context = DOM.context2d(width, height);
const path = d3.geoPath(projection, context).pointRadius(1.5);
context.save();
context.beginPath(), path(outline), context.clip(), context.fillStyle = "#fff", context.fillRect(0, 0, width, height);
context.beginPath(), path(graticule), context.strokeStyle = "#eee", context.stroke();
context.beginPath(), path(land), context.fillStyle = "#ccc", context.fill();
context.beginPath(), path(feature), context.fillStyle = "#000", context.fill();
context.restore();
context.beginPath(), path(outline), context.strokeStyle = "#000", context.stroke();
return context.canvas;
}