'Return an image for an area.
Each argument (width, height, etc.) is substituted into the template.'

def renderArea(self, width, height, srs, xmin, ymin, xmax, ymax, zoom):

    if (self.source_projection is not None):
        ne_location = self.layer.projection.projLocation(Point(xmax, ymax))
        ne_point = self.source_projection.locationProj(ne_location)
        ymax = ne_point.y
        xmax = ne_point.x
        sw_location = self.layer.projection.projLocation(Point(xmin, ymin))
        sw_point = self.source_projection.locationProj(sw_location)
        ymin = sw_point.y
        xmin = sw_point.x
        srs = self.source_projection.srs
    mapping = {'width': width, 'height': height, 'srs': srs, 'zoom': zoom, 'xmin': xmin, 'ymin': ymin, 'xmax': xmax, 'ymax': ymax}
    href = self.template.safe_substitute(mapping)
    req = urllib2.Request(href)
    if self.referer:
        req.add_header('Referer', self.referer)
    body = urllib2.urlopen(req, timeout=self.timeout).read()
    tile = Verbatim(body)
    return tile
