linea = {
const svg = d3.create("svg")
.attr("viewBox", [0, 0, width, width])
const path = d3.geoPath(projection)
const h_ = svg.selectAll('.legend_h').data(horas).join('g').attr('class', 'legend_h').attr('transform', (d,i) => `translate(${i*131 + 155} 30)`)
h_.append('text').text(d=>d+':00').attr('text-anchor', 'middle')
const m_ = svg.selectAll('.legend_m').data(str_meses).join('g').attr('class', 'legend_m').attr('transform', (d,i) => `translate(50 ${i*75 + 75})`)
m_.append('text').text(d=>d).attr('text-anchor', 'middle')
meses.map(m => {
horas.map((h,i) => {
const night = d3.geoCircle()
.radius(90)
.center(antipode(sun(1,m,h)))
()
const paises = svg.append('g').attr('transform', `scale(.1) translate(${1300*i + 1100} ${m*750 + 500})`)
paises.selectAll('path')
.data(mundo.features)
.join('path')
.attr('fill', '#999')
.attr('stroke', '#333')
.attr('d',d3.geoPath(projection))
paises.append('path').attr('d', d=>path(sphere))
.attr('fill', 'none')
.attr('stroke', '#333')
.attr('stroke-width', 3)
paises.append('path').attr('d', d=>path(night))
.attr('fill', 'rgba(0,0,0,0.3)')
.attr('stroke', '#333')
.attr('stroke-width', 3)
})
})
return svg.node()
}