Draw a map in the current context figure.

    Parameters
    ----------
    map_data: string or bqplot.map (default: WorldMap)
        Name of the map or json file required for the map data.
    options: dict (default: {})
        Options for the scales to be created. If a scale labeled 'x' is
        required for that mark, options['x'] contains optional keyword
        arguments for the constructor of the corresponding scale type.
    axes_options: dict (default: {})
        Options for the axes to be created. If an axis labeled 'x' is required
        for that mark, axes_options['x'] contains optional keyword arguments
        for the constructor of the corresponding axis type.

def geo(map_data, **kwargs):
    """Draw a map in the current context figure.

    Parameters
    ----------
    map_data: string or bqplot.map (default: WorldMap)
        Name of the map or json file required for the map data.
    options: dict (default: {})
        Options for the scales to be created. If a scale labeled 'x' is
        required for that mark, options['x'] contains optional keyword
        arguments for the constructor of the corresponding scale type.
    axes_options: dict (default: {})
        Options for the axes to be created. If an axis labeled 'x' is required
        for that mark, axes_options['x'] contains optional keyword arguments
        for the constructor of the corresponding axis type.
    """
    scales = kwargs.pop('scales', _context['scales'])
    options = kwargs.get('options', {})
    if 'projection' not in scales:
        scales['projection'] = Mercator(**options.get('projection', {}))
    kwargs['scales'] = scales
    if isinstance(map_data, string_types):
        kwargs['map_data'] = topo_load('map_data/' + map_data + '.json')
    else:
        kwargs['map_data'] = map_data
    return _draw_mark(Map, **kwargs)