circleMap = function() {
const width = 180, height = width, rotate = 0, radius = width/2, basescale = width/2/Math.PI;
const svg = d3.select(DOM.svg(width, height)).style("background", "transparent")
.attr("width", width).attr("height", height)
.style("background", "transparent")
var projection = d3.geoMercator()
.fitExtent([[0,0], [width/1.1, height/1.1]], EEZshapes);
var path = d3.geoPath()
.projection(projection);
var defs = svg.append("defs");
defs.append("clipPath")
.attr("id", "clip-inset")
.attr('transform', `translate(${width/2},${height/2})`)
.append("circle")
.attr("r", radius);
var g = svg.append('g')
.classed('insetmap', true)
.attr('clip-path', "url(#clip-inset)");
g.selectAll("path")
.data(EEZshapes.features)
.enter().append("path")
.attr("class", "countryFeature")
.attr("id",d => `${whiteSpace(d.properties.SOVEREIGN1)}`)
.attr("d", path)
.style('fill', "white")
.style('stroke', '#ccc')
.style("stroke-width",0.5)
g.append("circle")
.attr("r",radius)
.attr('transform', `translate(${width/2},${height/2})`)
.style("fill","none")
.style("stroke","black")
return svg.node()
}