#!/usr/bin/env plcsh import Image, ImageDraw def circle (image, percentX, percentY, radiusX, radiusY, colorIn, colorOut): imageX, imageY = image.size centerX = int(imageX*percentX) centerY = int(imageY*percentY) x = max (0, min (centerX,imageX)) y = max (0, min (centerY,imageY)) x1 = x - radiusX x2 = x + radiusX y1 = y - radiusY y2 = y + radiusY draw = ImageDraw.Draw (image) draw.chord((x1,y1,x2,y2), 0, 360, fill=colorIn, outline=colorOut ) del draw def main (): path = '/var/www/html/' original = path + 'map.png' live = path + 'livemap.png' # map characteristics, in degrees. # latitude : positive is north # longitude : positive is east latitude={'top':65., 'bottom': 35.5} longitude={'left':-11., 'right':58.} # circle radius in pixels sx,sy=6,6 # circle in and out colors cIn,cOut='#566b8a','#bbbbbb' image = Image.open(original) for site in GetSites(): if site['longitude'] is not None and site['latitude'] is not None: px=float(longitude['left']-site['longitude'])/float(longitude['left']-longitude['right']) py=float(latitude['top']-site['latitude'])/float(latitude['top']-latitude['bottom']) circle(image,px,py,sx,sy,cIn,cOut) image.save (live) if __name__ == '__main__': main ()