import math import sys from pysvg import text,circle,polygon,svgdoc from orthographic import globeplotter jscode = """function showToolTip(evt,tid,show) { var elem = document.getElementById(tid); elem.style.display = show ? 'block' : 'none'; var x = evt.pageX; var y = evt.pageY; elem.setAttribute("x",String(x)); elem.setAttribute("y",String(y)); var elems = document.getElementsByClassName(tid); for(i=0;i 1: adjpoints = [] for (x,y) in points: adjpoints.append((x,y+self.starty)) self.regions.append(polygon(adjpoints,fill,(255,0,0),0,classname)) def addTooltip(self,label,classname): self.tooltips.append(text(0,0,label,True,classname)) def render(self,outpath): svg = svgdoc(200+int(self.r*2),self.starty+int(self.r*2),jscode) # add the title title = text(40,40,self.title) title.addStyle("font-size","24px") svg.add(title) # add a blue circle representing the worlds oceans, as a background svg.add(circle(self.r,self.r+self.starty,self.r,"rgb(128,128,255)")) # add country data (polygons for visible regions) for region in self.regions: svg.add(region) for tooltip in self.tooltips: svg.add(tooltip) # write the svg contents to file if outpath: f = open(outpath,"w+") f.write(svg.render()) f.close() else: print svg.render()