''

def renderArea(self, width_, height_, srs, xmin_, ymin_, xmax_, ymax_, zoom):

    merc = Proj(srs)
    (lon, lat) = merc(((xmin_ + xmax_) / 2), ((ymin_ + ymax_) / 2), inverse=True)
    zone = lon2zone(lon)
    hemi = lat2hemi(lat)
    utm = Proj(proj='utm', zone=zone, datum='WGS84')
    ((minlon, minlat), (maxlon, maxlat)) = (merc(xmin_, ymin_, inverse=1), merc(xmax_, ymax_, inverse=1))
    ((xmin, ymin), (xmax, ymax)) = (utm(minlon, minlat), utm(maxlon, maxlat))
    pixels = _hypot(width_, height_)
    units = _hypot((xmax - xmin), (ymax - ymin))
    tick = ((self.tick * units) / pixels)
    count = (pixels / self.spacing)
    bound = (units / count)
    zeros = int(_ceil((_log(bound) / _log(10))))
    step = int(_pow(10, zeros))
    (xbot, xtop) = (int((xmin - (xmin % step))), (int((xmax - (xmax % step))) + (2 * step)))
    (ybot, ytop) = (int((ymin - (ymin % step))), (int((ymax - (xmax % step))) + (2 * step)))
    img = Image.new('RGBA', (width_, height_), (238, 238, 238, 0))
    draw = ImageDraw.ImageDraw(img)
    xform = transform(width_, height_, xmin_, ymax_, xmax_, ymin_)
    lines = []
    labels = []
    for col in range(xbot, xtop, step):
        utms = [(col, y) for y in range(ybot, ytop, (step / 10))]
        mercs = [merc(*utm(x, y, inverse=1)) for (x, y) in utms]
        lines.append([xform(x, y) for (x, y) in mercs])
        for row in range(ybot, ytop, (step / 10)):
            mercs = [merc(*utm(x, y, inverse=1)) for (x, y) in ((col, row), ((col - tick), row))]
            lines.append([xform(x, y) for (x, y) in mercs])
    for row in range(ybot, ytop, step):
        utms = [(x, row) for x in range(xbot, xtop, (step / 10))]
        mercs = [merc(*utm(x, y, inverse=1)) for (x, y) in utms]
        lines.append([xform(x, y) for (x, y) in mercs])
        for col in range(xbot, xtop, (step / 10)):
            mercs = [merc(*utm(x, y, inverse=1)) for (x, y) in ((col, row), (col, (row - tick)))]
            lines.append([xform(x, y) for (x, y) in mercs])
    for x in range(xbot, xtop, step):
        for y in range(ybot, ytop, step):
            (lon, lat) = utm(x, y, inverse=1)
            grid = lonlat2grid(lon, lat)
            point = xform(*merc(lon, lat))
            if (self.display == 'utm'):
                e = ('%07d' % x)[:(- zeros)]
                n = ('%07d' % y)[:(- zeros)]
                text = '    '.join([grid, e, n])
            elif (self.display == 'mgrs'):
                (e, n) = Proj(proj='utm', zone=lon2zone(lon), datum='WGS84')(lon, lat)
                text = utm2mgrs(round(e), round(n), grid, zeros)
            labels.append((point, text))
    for ((x, y), text) in labels:
        (x, y) = ((x + 2), (y - 18))
        (w, h) = self.font.getsize(text)
        draw.rectangle(((x - 2), y, ((x + w) + 2), (y + h)), fill=(255, 255, 255, 153))
    for line in lines:
        draw.line(line, fill=(255, 255, 255))
    for line in lines:
        draw.line([((x - 1), (y - 1)) for (x, y) in line], fill=(0, 0, 0))
    for ((x, y), text) in labels:
        (x, y) = ((x + 2), (y - 18))
        draw.text((x, y), text, fill=(0, 0, 0), font=self.font)
    return img
