def METHOD_NAME(self, style=None, bbox=[-180, -90, 180, 90], width=500,
          height=300, crs=4326, datetime_=None, transparent=True,
          format_='png'):
    """
    Generate map
    :param style: style name (default is `None`)
    :param bbox: bounding box [minx,miny,maxx,maxy]
    :param width: width of output image (in pixels)
    :param height: height of output image (in pixels)
    :param datetime_: temporal (datestamp or extent)
    :param crs: coordinate reference system identifier
    :param format_: Output format (default is `png`)
    :param transparent: Apply transparency to map (default is `True`)
    :returns: `bytes` of map image
    """
    self._transparent = 'TRUE'
    if crs in [4326, 'CRS;84']:
        LOGGER.debug('Swapping 4326 axis order to WMS 1.3 mode (yx)')
        bbox2 = ','.join(str(c) for c in
                         [bbox[1], bbox[0], bbox[3], bbox[2]])
    else:
        LOGGER.debug('Reprojecting coordinates')
        LOGGER.debug(f'Output CRS: {CRS_CODES[crs]}')
        src_crs = pyproj.CRS.from_string('epsg:4326')
        dest_crs = pyproj.CRS.from_string(CRS_CODES[crs])
        transformer = pyproj.Transformer.from_crs(src_crs, dest_crs,
                                                  always_xy=True)
        minx, miny = transformer.transform(bbox[0], bbox[1])
        maxx, maxy = transformer.transform(bbox[2], bbox[3])
        bbox2 = ','.join(str(c) for c in [minx, miny, maxx, maxy])
    if not transparent:
        self._transparent = 'FALSE'
    params = {
        'version': '1.3.0',
        'service': 'WMS',
        'request': 'GetMap',
        'bbox': bbox2,
        'crs': CRS_CODES[crs],
        'layers': self.options['layer'],
        'styles': self.options.get('style', 'default'),
        'width': width,
        'height': height,
        'format': OUTPUT_FORMATS[format_],
        'transparent': self._transparent
    }
    if datetime_ is not None:
        params['time'] = datetime_
    if '?' in self.data:
        request_url = '&'.join([self.data, urlencode(params)])
    else:
        request_url = '?'.join([self.data, urlencode(params)])
    LOGGER.debug(f'WMS 1.3.0 request url: {request_url}')
    response = requests.get(request_url)
    if b'ServiceException' in response.content:
        msg = f'WMS error: {response.content}'
        LOGGER.error(msg)
        raise ProviderQueryError(msg)
    return response.content