''

def renderTile(self, width, height, srs, coord):

    if (self.mapnik is None):
        self.mapnik = get_mapnikMap(self.mapfile)
    buffer = (float(self.buffer) / 256)
    nw = self.layer.projection.coordinateLocation(coord.left(buffer).up(buffer))
    se = self.layer.projection.coordinateLocation(coord.right((1 + buffer)).down((1 + buffer)))
    ul = self.mercator.locationProj(nw)
    lr = self.mercator.locationProj(se)
    self.mapnik.width = (width + (2 * self.buffer))
    self.mapnik.height = (height + (2 * self.buffer))
    self.mapnik.zoom_to_box(mapnik.Box2d(ul.x, ul.y, lr.x, lr.y))
    grid = mapnik.Grid((width + (2 * self.buffer)), (height + (2 * self.buffer)))
    mapnik.render_layer(self.mapnik, grid, layer=self.layer_index, fields=self.fields)
    grid_view = grid.view(self.buffer, self.buffer, width, height)
    grid_utf = grid_view.encode('utf', resolution=self.scale, add_features=True)
    if (self.wrapper is None):
        return SaveableResponse(json.dumps(grid_utf))
    else:
        return SaveableResponse((((self.wrapper + '(') + json.dumps(grid_utf)) + ')'))
