function drawSymbol(svg, data, value){
const size = scaleSize(data, value);
const path = d3.geoPath();
const centroids = topojson
.feature(es, es.objects.autonomous_regions)
.features
.map((feature) => path.centroid(feature));
svg.selectAll('path')
.data(topojson.feature(es, es.objects.autonomous_regions).features)
.join('path')
.attr("fill", "#DCDCDC")
.attr("d", path.projection(projection));
svg.append("path")
.datum(topojson.mesh(es, es.objects.autonomous_regions, (a, b) => a !== b))
.attr("fill", "none")
.attr("stroke", "white")
.attr("d", path);
svg.selectAll('circle')
.data(topojson.feature(es, es.objects.autonomous_regions).features)
.join('circle')
.attr('cx', d => {
const x = path.centroid(d)[0];
return x;
})
.attr('cy', d => {
const y = path.centroid(d)[1];
return y;
})
.attr('r', d => {
const datum = data.find(dd => dd.id === d.id)[value];
return datum === null ? 0 : size(datum);
})
.attr("fill", "#0066AA")
.attr("fill-opacity", .3)
.attr("stroke", "#0066AA");
svg.selectAll('.hoverCircle')
.data(topojson.feature(es, es.objects.autonomous_regions).features)
.join('circle')
.attr('cx', d => {
const x = path.centroid(d)[0];
return x;
})
.attr('cy', d => {
const y = path.centroid(d)[1];
return y;
})
.attr('r', d => {
const datum = data.find(dd => dd.id === d.id)[value];
return datum === null ? 0 : size(datum);
})
.attr('class', 'hoverCircle')
.attr("fill-opacity", 0)
.attr("stroke", "#000")
.attr("stroke-width", 2)
.attr("opacity", 0);
}