if(!d3.geo2square) d3.geo2square = function(coordinates, width, height) { console.log(width) var centroid =d3.polygonCentroid(coordinates) width = (width) ? width : 50 ; height = (height) ? height : 50 ; var pp = [] var ii = 0 var max = coordinates.length var f = ~~(max/4) var wScale = d3.scaleLinear().domain([0, f]).range([0, width]) var RwScale = d3.scaleLinear().domain([0, f]).range([width, 0]) var hScale = d3.scaleLinear().domain([0, f]).range([0, height]) var RhScale = d3.scaleLinear().domain([0, f]).range([height, 0]) while (ii < max) { if (ii <= f){ pp.push([ centroid[0]+wScale(ii), centroid[1] ]) } else if (ii <= f*2){ pp.push([ centroid[0]+width, centroid[1] + hScale(ii-f) ]) } else if (ii <= f*3){ pp.push([ centroid[0]+RwScale(ii-f*2), centroid[1]+height ]) } else if (ii <= f*4){ pp.push([ centroid[0], centroid[1]+RhScale(ii-f*3) ]) } ii++ } return pp };