map = () => {
const svg = d3.create("svg")
.attr("width", size)
.attr("height", size)
.style("overflow", "visible");
svg.append("path")
.datum({type: "Sphere"})
.attr("d", path)
.attr("fill", "none")
.attr("stroke", "#c0c0c0");
svg.selectAll(".meridien")
.data(d3.range(-180, 0, interval).map(meridien))
.join("path")
.attr("class", "meridien")
.attr("d", path)
.attr("fill", "none")
.attr("stroke", "lime")
.attr("stroke-width", 3);
svg.selectAll(".parallel")
.data(d3.range(-90, 90, interval).map(parallel))
.join("path")
.attr("class", "parallel")
.attr("d", path)
.attr("fill", "none")
.attr("stroke", "tomato")
.attr("stroke-width", 3);
svg.append("circle")
.datum([0, 90])
.attr("r", 3)
.attr("fill", "tomato")
.attr("transform", d => `translate(${projection(d)})`);
svg.append("path")
.datum(topojson.mesh(landTopo, landTopo.objects.land, (a, b) => a === b))
.attr("d", path)
.attr("stroke", "#666")
.attr("fill", "none");
return svg.node();
}