@staticmethod
def create(**kwargs):
    """Create an empty map object.

        This method accepts generic options listed below, as well as options
        for `HpxMap` and `WcsMap` objects. For WCS-specific options, see
        `WcsMap.create` and for HPX-specific options, see `HpxMap.create`.

        Parameters
        ----------
        frame : str
            Coordinate system, either Galactic ("galactic") or Equatorial
            ("icrs").
        map_type : {'wcs', 'wcs-sparse', 'hpx', 'hpx-sparse', 'region'}
            Map type.  Selects the class that will be used to
            instantiate the map.
        binsz : float or `~numpy.ndarray`
            Pixel size in degrees.
        skydir : `~astropy.coordinates.SkyCoord`
            Coordinate of map center.
        axes : list
            List of `~MapAxis` objects for each non-spatial dimension.
            If None then the map will be a 2D image.
        dtype : str
            Data type, default is 'float32'
        unit : str or `~astropy.units.Unit`
            Data unit.
        meta : `dict`
            Dictionary to store meta data.
        region : `~regions.SkyRegion`
            Sky region used for the region map.

        Returns
        -------
        map : `Map`
            Empty map object.
        """
    from .hpxmap import HpxMap
    from .wcsmap import WcsMap
    from .regionnd import RegionNDMap
    map_type = kwargs.setdefault('map_type', 'wcs')
    if 'wcs' in map_type.lower():
        return WcsMap.create(**kwargs)
    elif 'hpx' in map_type.lower():
        return HpxMap.create(**kwargs)
    elif map_type == 'region':
        _ = kwargs.pop('map_type')
        return RegionNDMap.create(**kwargs)
    else:
        raise ValueError(f'Unrecognized map type: {map_type!r}')
