def METHOD_NAME(self, *args, **options):
    (minx, miny), (maxx, maxy) = Source.max_bounds()
    if options['minx'] is not None:
        minx = options['minx']
    if options['miny'] is not None:
        miny = options['miny']
    if options['maxx'] is not None:
        maxx = options['maxx']
    if options['maxy'] is not None:
        maxy = options['maxy']
    if minx >= maxx:
        raise CommandError(_('minx has to be lower than maxx'))
    if miny >= maxy:
        raise CommandError(_('miny has to be lower than maxy'))
    for level in options['levels']:
        renderer = MapRenderer(level.pk, minx, miny, maxx, maxy, access_permissions=options['permissions'],
                               scale=options['scale'], full_levels=options['full_levels'],
                               min_width=options['min_width'])
        name = options['name'] or ('level_%s' % level.short_label)
        filename = os.path.join(settings.RENDER_ROOT,
                                '%s.%s' % (name, options['filetype']))
        render = renderer.render(get_engine(options['filetype']), center=not options['no_center'])
        data = render.render(filename)
        if isinstance(data, tuple):
            other_data = data[1:]
            data = data[0]
        else:
            other_data = ()
        open(filename, 'wb').write(data)
        for filename, data in other_data:
            open(filename, 'wb').write(data)