Class: QgsMapBoxGlStyleConverter¶
Handles conversion of MapBox GL styles to QGIS vector tile renderers and labeling settings.
Conversions are performed by calling convert() with either a
JSON map or JSON string value, and then retrieving the results by
calling renderer() or labeling() respectively.
Added in version 3.16.
Enums
Property types, for interpolated value conversion  | 
Methods
Converts a JSON style map, and returns the resultant status of the conversion.  | 
|
Returns a list of new map layers corresponding to sublayers of the style, e.g. raster layers.  | 
|
Returns a descriptive error message if an error was encountered during the style conversion, or an empty string if no error was encountered.  | 
|
Returns a new instance of a vector tile labeling representing the converted style, or   | 
|
Parse list of layers from JSON.  | 
|
Parse a raster source from JSON.  | 
|
Parse list of sources from JSON.  | 
|
Returns a list of raster sub layers contained in the style.  | 
|
Returns a new instance of a vector tile renderer representing the converted style, or   | 
|
Returns the list of converted sources.  | 
|
Returns a list of user-friendly warnings generated during the conversion, e.g. as a result of MapBox GL style settings which cannot be translated to QGIS styles.  | 
Static Methods
Takes a QColor object and returns HSLA components in required format for QGIS   | 
|
Generates an interpolation for values between valueMin and valueMax, scaled between the ranges zoomMin to zoomMax.  | 
|
Takes numerical arrays from stops.  | 
|
Converts a value to Qt.PenCapStyle enum from JSON value.  | 
|
Parses a circle layer.  | 
|
Parses a color in one of these supported formats:  | 
|
Converts an expression representing a color to a string (can be color string or an expression where a color is expected)  | 
|
Converts a MapBox GL expression to a QGIS expression.  | 
|
Parses a fill layer.  | 
|
Parses a numeric value which is interpolated by zoom range.  | 
|
Parses a color value which is interpolated by zoom range.  | 
|
Interpolates a list which starts with the interpolate function.  | 
|
Interpolates opacity with either   | 
|
Interpolates a point/offset with either   | 
|
Interpolates a string by zoom.  | 
|
Converts a value to Qt.PenJoinStyle enum from JSON value.  | 
|
Parses a list of interpolation stops containing label values.  | 
|
Parses a line layer.  | 
|
Parses and converts a match function value list.  | 
|
Takes values from stops and uses either   | 
|
Takes values from stops and uses either   | 
|
Parses and converts a match function value list.  | 
|
Parses a list of interpolation stops  | 
|
Parses a list of interpolation stops containing string values.  | 
|
Parses a symbol layer as renderer or labeling.  | 
|
Parses a symbol layer as a renderer  | 
|
Parses and converts a value list (e.g. an interpolate list).  | 
|
Retrieves the sprite image with the specified name, taken from the specified context.  | 
|
Retrieves the sprite image with the specified name, taken from the specified context as a base64 encoded value  | 
|
Retrieves the sprite image with the specified name, taken from the specified context as a base64 encoded value  | 
Attributes
- class qgis.core.QgsMapBoxGlStyleConverter[source]¶
 Bases:
object- __init__()
 Constructor for QgsMapBoxGlStyleConverter.
- NoLayerList = 1¶
 
- class PropertyType(*values)¶
 Bases:
IntEnumProperty types, for interpolated value conversion
Warning
This is private API only, and may change in future QGIS versions
Color: Color propertyNumeric: Numeric property (e.g. line width, text size)Opacity: Opacity propertyPoint: Point/offset propertyNumericArray: Numeric array for dash arrays or such
- Color = 0¶
 
- Numeric = 1¶
 
- NumericArray = 4¶
 
- Opacity = 2¶
 
- Point = 3¶
 
- class Result¶
 Bases:
int
- Success = 0¶
 
- static colorAsHslaComponents(color: QColor | Qt.GlobalColor)[source]¶
 Takes a QColor object and returns HSLA components in required format for QGIS
color_hsla()expression function.- Parameters:
 color (Union[QColor, Qt.GlobalColor]) -> (int) – input color
hue – an integer value from 0 to 360
saturation – an integer value from 0 to 100
lightness – an integer value from 0 to 100
alpha – an integer value from 0 (completely transparent) to 255 (opaque).
Warning
This is private API only, and may change in future QGIS versions
- convert(self, style: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext | None = None) QgsMapBoxGlStyleConverter.Result[source]¶
 Converts a JSON
stylemap, and returns the resultant status of the conversion.If an error occurs during conversion then a descriptive error message can be retrieved by calling
errorMessage().After conversion, the resultant labeling and style rules can be retrieved by calling
renderer()orlabeling()respectively.The optional
contextargument can be set to use a specific context during the conversion.- Parameters:
 style (Dict[str, Any])
context (Optional[QgsMapBoxGlStyleConversionContext] = None)
- Return type:
 
- convert(self, style: str | None, context: QgsMapBoxGlStyleConversionContext | None = None) QgsMapBoxGlStyleConverter.Result[source]
 Converts a JSON
stylestring, and returns the resultant status of the conversion.If an error occurs during conversion then a descriptive error message can be retrieved by calling
errorMessage().After conversion, the resultant labeling and style rules can be retrieved by calling
renderer()orlabeling()respectively.The optional
contextargument can be set to use a specific context during the conversion.- Parameters:
 style (Optional[str])
context (Optional[QgsMapBoxGlStyleConversionContext] = None)
- Return type:
 
- createSubLayers(self) List[QgsMapLayer]¶
 Returns a list of new map layers corresponding to sublayers of the style, e.g. raster layers.
The caller takes ownership of the returned layers.
Added in version 3.28.
- Return type:
 List[QgsMapLayer]
- errorMessage(self) str[source]¶
 Returns a descriptive error message if an error was encountered during the style conversion, or an empty string if no error was encountered.
See also
- Return type:
 str
- static interpolateExpression(zoomMin: float, zoomMax: float, valueMin: Any, valueMax: Any, base: float, multiplier: float = 1, contextPtr: QgsMapBoxGlStyleConversionContext | None = None) str[source]¶
 Generates an interpolation for values between
valueMinandvalueMax, scaled between the rangeszoomMintozoomMax.Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 zoomMin (float)
zoomMax (float)
valueMin (Any)
valueMax (Any)
base (float)
multiplier (float = 1)
contextPtr (Optional[QgsMapBoxGlStyleConversionContext] = None)
- Return type:
 str
- labeling(self) QgsVectorTileLabeling | None[source]¶
 Returns a new instance of a vector tile labeling representing the converted style, or
Noneif the style could not be converted successfully.- Return type:
 Optional[QgsVectorTileLabeling]
- static parseArrayStops(stops: Iterable[Any], context: QgsMapBoxGlStyleConversionContext, multiplier: float = 1) str[source]¶
 Takes numerical arrays from stops.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 stops (Iterable[Any])
context (QgsMapBoxGlStyleConversionContext)
multiplier (float = 1)
- Return type:
 str
- static parseCapStyle(style: str | None) Qt.PenCapStyle[source]¶
 Converts a value to Qt.PenCapStyle enum from JSON value.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 style (Optional[str])
- Return type:
 Qt.PenCapStyle
- static parseCircleLayer(jsonLayer: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext)[source]¶
 Parses a circle layer.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 jsonLayer (Dict[str, Any]) – circle layer to parse
context (
QgsMapBoxGlStyleConversionContext) -> (bool) – conversion context
- Returns:
 Trueif the layer was successfully parsed.style: generated QGIS vector tile style
- static parseColor(color: Any, context: QgsMapBoxGlStyleConversionContext) QColor[source]¶
 Parses a
colorin one of these supported formats:c #fff or c #ffffff
hsl(30, 19%, 90%)orhsla(30, 19%, 90%, 0.4)rgb(10, 20, 30)orrgba(10, 20, 30, 0.5)
Returns an invalid color if the color could not be parsed.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 color (Any)
context (QgsMapBoxGlStyleConversionContext)
- Return type:
 QColor
- static parseColorExpression(colorExpression: Any, context: QgsMapBoxGlStyleConversionContext) str[source]¶
 Converts an expression representing a color to a string (can be color string or an expression where a color is expected)
- Parameters:
 colorExpression (Any) – the color expression
context (QgsMapBoxGlStyleConversionContext) – the style conversion context
- Return type:
 str
- Returns:
 the QGIS expression string
Added in version 3.22.
- static parseExpression(expression: Iterable[Any], context: QgsMapBoxGlStyleConversionContext, colorExpected: bool = False) str[source]¶
 Converts a MapBox GL expression to a QGIS expression.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 expression (Iterable[Any])
context (QgsMapBoxGlStyleConversionContext)
colorExpected (bool = False)
- Return type:
 str
- static parseFillLayer(jsonLayer: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext, isBackgroundStyle: bool = False)[source]¶
 Parses a fill layer.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 jsonLayer (Dict[str, Any]) – fill layer to parse
context (QgsMapBoxGlStyleConversionContext) – conversion context
isBackgroundStyle (bool = False) -> (bool) – set to
Trueif the layer should be parsed as background layer
- Returns:
 Trueif the layer was successfully parsed.style: generated QGIS vector tile style
- static parseInterpolateByZoom(json: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext, multiplier: float = 1)[source]¶
 Parses a numeric value which is interpolated by zoom range.
- Parameters:
 json (Dict[str, Any]) – definition of interpolation
context (QgsMapBoxGlStyleConversionContext) – conversion context
multiplier (float = 1) -> (QgsProperty) – optional multiplication factor
- Returns:
 QgsPropertyrepresenting interpolation settingsdefaultNumber: a reasonable “default” number representing the overall property.
- static parseInterpolateColorByZoom(json: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext)[source]¶
 Parses a color value which is interpolated by zoom range.
- Parameters:
 json (Dict[str, Any]) – definition of color interpolation
context (
QgsMapBoxGlStyleConversionContext) -> (QgsProperty) – conversion context
- Returns:
 QgsPropertyrepresenting interpolation settingsdefaultColor: a reasonable “default” color representing the overall property.
- static parseInterpolateListByZoom(json: Iterable[Any], type: QgsMapBoxGlStyleConverter.PropertyType, context: QgsMapBoxGlStyleConversionContext, multiplier: float = 1, maxOpacity: int = 255)[source]¶
 Interpolates a list which starts with the interpolate function.
Warning
This is private API only, and may change in future QGIS versions
Added in version 3.40.
- Parameters:
 json (Iterable[Any])
context (QgsMapBoxGlStyleConversionContext)
multiplier (float = 1)
maxOpacity (int = 255) -> (QgsProperty)
- static parseInterpolateOpacityByZoom(json: Dict[str, Any], maxOpacity: int, contextPtr: QgsMapBoxGlStyleConversionContext | None = None) QgsProperty[source]¶
 Interpolates opacity with either
scale_linear()orscale_exp()(depending on base value). Forjsonwith intermediate stops it usesparseOpacityStops()function. It uses QGISset_color_part()function to set alpha component of color.Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 json (Dict[str, Any])
maxOpacity (int)
contextPtr (Optional[QgsMapBoxGlStyleConversionContext] = None)
- Return type:
 
- static parseInterpolatePointByZoom(json: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext, multiplier: float = 1)[source]¶
 Interpolates a point/offset with either
scale_linear()orscale_exp()(depending on base value). Forjsonwith intermediate stops it usesparsePointStops()function.Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 json (Dict[str, Any])
context (QgsMapBoxGlStyleConversionContext)
multiplier (float = 1) -> (QgsProperty)
- static parseInterpolateStringByZoom(json: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext, conversionMap: Dict[str, Any])[source]¶
 Interpolates a string by zoom. For
jsonwith intermediate stops it usesparseStringStops()function.Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 json (Dict[str, Any])
context (QgsMapBoxGlStyleConversionContext)
conversionMap (Dict[str, Any]) -> (QgsProperty)
- static parseJoinStyle(style: str | None) Qt.PenJoinStyle[source]¶
 Converts a value to Qt.PenJoinStyle enum from JSON value.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 style (Optional[str])
- Return type:
 Qt.PenJoinStyle
- static parseLabelStops(stops: Iterable[Any], context: QgsMapBoxGlStyleConversionContext) str[source]¶
 Parses a list of interpolation stops containing label values.
- Parameters:
 stops (Iterable[Any]) – definition of interpolation stops
context (QgsMapBoxGlStyleConversionContext) – conversion context
- Return type:
 str
- Returns:
 converted expression
- parseLayers(self, layers: Iterable[Any], context: QgsMapBoxGlStyleConversionContext | None = None)[source]¶
 Parse list of
layersfrom JSON.Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 layers (Iterable[Any])
context (Optional[QgsMapBoxGlStyleConversionContext] = None)
- static parseLineLayer(jsonLayer: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext)[source]¶
 Parses a line layer.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 jsonLayer (Dict[str, Any]) – line layer to parse
context (
QgsMapBoxGlStyleConversionContext) -> (bool) – conversion context
- Returns:
 Trueif the layer was successfully parsed.style: generated QGIS vector tile style
- static parseMatchList(json: Iterable[Any], type: QgsMapBoxGlStyleConverter.PropertyType, context: QgsMapBoxGlStyleConversionContext, multiplier: float = 1, maxOpacity: int = 255)[source]¶
 Parses and converts a match function value list.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 json (Iterable[Any])
context (QgsMapBoxGlStyleConversionContext)
multiplier (float = 1)
maxOpacity (int = 255) -> (QgsProperty)
- static parseOpacityStops(base: float, stops: Iterable[Any], maxOpacity: int, context: QgsMapBoxGlStyleConversionContext) str[source]¶
 Takes values from stops and uses either
scale_linear()orscale_exp()functions to interpolate alpha component of color.Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 base (float)
stops (Iterable[Any])
maxOpacity (int)
context (QgsMapBoxGlStyleConversionContext)
- Return type:
 str
- static parsePointStops(base: float, stops: Iterable[Any], context: QgsMapBoxGlStyleConversionContext, multiplier: float = 1) str[source]¶
 Takes values from stops and uses either
scale_linear()orscale_exp()functions to interpolate point/offset values.Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 base (float)
stops (Iterable[Any])
context (QgsMapBoxGlStyleConversionContext)
multiplier (float = 1)
- Return type:
 str
- parseRasterSource(self, source: Dict[str, Any], name: str | None, context: QgsMapBoxGlStyleConversionContext | None = None)[source]¶
 Parse a raster
sourcefrom JSON.Warning
This is private API only, and may change in future QGIS versions
Added in version 3.28.
- Parameters:
 source (Dict[str, Any])
name (Optional[str])
context (Optional[QgsMapBoxGlStyleConversionContext] = None)
- parseSources(self, sources: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext | None = None)[source]¶
 Parse list of
sourcesfrom JSON.Warning
This is private API only, and may change in future QGIS versions
Added in version 3.28.
- Parameters:
 sources (Dict[str, Any])
context (Optional[QgsMapBoxGlStyleConversionContext] = None)
- static parseStepList(json: Iterable[Any], type: QgsMapBoxGlStyleConverter.PropertyType, context: QgsMapBoxGlStyleConversionContext, multiplier: float = 1, maxOpacity: int = 255)[source]¶
 Parses and converts a match function value list.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 json (Iterable[Any])
context (QgsMapBoxGlStyleConversionContext)
multiplier (float = 1)
maxOpacity (int = 255) -> (QgsProperty)
- static parseStops(base: float, stops: Iterable[Any], multiplier: float, context: QgsMapBoxGlStyleConversionContext) str[source]¶
 Parses a list of interpolation stops
- Parameters:
 base (float) – interpolation exponent base
stops (Iterable[Any]) – definition of interpolation stops
multiplier (float) – optional multiplication factor
context (QgsMapBoxGlStyleConversionContext) – conversion context
- Return type:
 str
- static parseStringStops(stops: Iterable[Any], context: QgsMapBoxGlStyleConversionContext, conversionMap: Dict[str, Any])[source]¶
 Parses a list of interpolation stops containing string values.
- Parameters:
 stops (Iterable[Any]) – definition of interpolation stops
context (QgsMapBoxGlStyleConversionContext) – conversion context
conversionMap (Dict[str, Any]) -> (str) – map of input string to output expression value
- Returns:
 converted expression
defaultString: reasonable default value taken from stops
- static parseSymbolLayer(jsonLayer: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext)[source]¶
 Parses a symbol layer as renderer or labeling.
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 jsonLayer (Dict[str, Any]) – symbol layer to parse
context (
QgsMapBoxGlStyleConversionContext) -> (QgsVectorTileBasicRendererStyle) – conversion context
- Returns:
 rendererStyle: generated QGIS vector tile style
hasRenderer:
Trueif symbol layer generated a renderer stylelabelingStyle: generated QGIS vector tile labeling
hasLabeling:
Trueif symbol layer generated a labeling style
- static parseSymbolLayerAsRenderer(jsonLayer: Dict[str, Any], context: QgsMapBoxGlStyleConversionContext)[source]¶
 Parses a symbol layer as a renderer
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 jsonLayer (Dict[str, Any]) – fill layer to parse
context (
QgsMapBoxGlStyleConversionContext) -> (bool) – conversion context
- Returns:
 Trueif symbol layer was converted to rendererrendererStyle: generated QGIS vector tile style
- static parseValueList(json: Iterable[Any], type: QgsMapBoxGlStyleConverter.PropertyType, context: QgsMapBoxGlStyleConversionContext, multiplier: float = 1, maxOpacity: int = 255)[source]¶
 Parses and converts a value list (e.g. an interpolate list).
Warning
This is private API only, and may change in future QGIS versions
- Parameters:
 json (Iterable[Any])
context (QgsMapBoxGlStyleConversionContext)
multiplier (float = 1)
maxOpacity (int = 255) -> (QgsProperty)
- rasterSubLayers(self) List[QgsMapBoxGlStyleRasterSubLayer]¶
 Returns a list of raster sub layers contained in the style.
Added in version 3.28.
- Return type:
 
- renderer(self) QgsVectorTileRenderer | None[source]¶
 Returns a new instance of a vector tile renderer representing the converted style, or
Noneif the style could not be converted successfully.- Return type:
 Optional[QgsVectorTileRenderer]
- static retrieveSprite(name: str | None, context: QgsMapBoxGlStyleConversionContext, spriteSize: QSize) QImage[source]¶
 Retrieves the sprite image with the specified
name, taken from the specifiedcontext.The
contextmust have valid sprite definitions and images set viaQgsMapBoxGlStyleConversionContext.setSprites()prior to conversion.- Parameters:
 name (Optional[str])
context (QgsMapBoxGlStyleConversionContext)
spriteSize (QSize)
- Return type:
 QImage
- static retrieveSpriteAsBase64(value: Any, context: QgsMapBoxGlStyleConversionContext) str[source]¶
 Retrieves the sprite image with the specified
name, taken from the specifiedcontextas a base64 encoded valueThe
contextmust have valid sprite definitions and images set viaQgsMapBoxGlStyleConversionContext.setSprites()prior to conversion.- Parameters:
 value (Any)
context (QgsMapBoxGlStyleConversionContext)
- Return type:
 str
- static retrieveSpriteAsBase64WithProperties(value: Any, context: QgsMapBoxGlStyleConversionContext)[source]¶
 Retrieves the sprite image with the specified
name, taken from the specifiedcontextas a base64 encoded valueThe
contextmust have valid sprite definitions and images set viaQgsMapBoxGlStyleConversionContext.setSprites()prior to conversion.Added in version 3.40.
- Parameters:
 value (Any)
context (
QgsMapBoxGlStyleConversionContext) -> (str)
- sources(self) List[QgsMapBoxGlStyleAbstractSource]¶
 Returns the list of converted sources.
Added in version 3.28.
- Return type: