Implementation
static LineLayer decode(String properties) {
var map = json.decode(properties);
if (map["layout"] == null) {
map["layout"] = {};
}
if (map["paint"] == null) {
map["paint"] = {};
}
return LineLayer(
id: map["id"],
sourceId: map["source"],
sourceLayer: map["source-layer"],
minZoom: map["minzoom"]?.toDouble(),
maxZoom: map["maxzoom"]?.toDouble(),
slot: map["slot"],
visibility: map["layout"]["visibility"] == null
? Visibility.VISIBLE
: Visibility.values.firstWhere(
(e) => e.name
.toLowerCase()
.replaceAll("_", "-")
.contains(map["layout"]["visibility"]),
),
visibilityExpression: styleOptionalCastList(map["layout"]["visibility"]),
filter: styleOptionalCastList(map["filter"]),
lineCap: map["layout"]["line-cap"] == null
? null
: LineCap.values.firstWhere(
(e) => e.name
.toLowerCase()
.replaceAll("_", "-")
.contains(map["layout"]["line-cap"]),
),
lineCapExpression: styleOptionalCastList(map["layout"]["line-cap"]),
lineCrossSlope: styleOptionalCast(map["layout"]["line-cross-slope"]),
lineCrossSlopeExpression: styleOptionalCastList(
map["layout"]["line-cross-slope"],
),
lineElevationGroundScale: styleOptionalCast(
map["layout"]["line-elevation-ground-scale"],
),
lineElevationGroundScaleExpression: styleOptionalCastList(
map["layout"]["line-elevation-ground-scale"],
),
lineElevationReference: map["layout"]["line-elevation-reference"] == null
? null
: LineElevationReference.values.firstWhere(
(e) => e.name
.toLowerCase()
.replaceAll("_", "-")
.contains(map["layout"]["line-elevation-reference"]),
),
lineElevationReferenceExpression: styleOptionalCastList(
map["layout"]["line-elevation-reference"],
),
lineJoin: map["layout"]["line-join"] == null
? null
: LineJoin.values.firstWhere(
(e) => e.name
.toLowerCase()
.replaceAll("_", "-")
.contains(map["layout"]["line-join"]),
),
lineJoinExpression: styleOptionalCastList(map["layout"]["line-join"]),
lineMiterLimit: styleOptionalCast(map["layout"]["line-miter-limit"]),
lineMiterLimitExpression: styleOptionalCastList(
map["layout"]["line-miter-limit"],
),
lineRoundLimit: styleOptionalCast(map["layout"]["line-round-limit"]),
lineRoundLimitExpression: styleOptionalCastList(
map["layout"]["line-round-limit"],
),
lineSortKey: styleOptionalCast(map["layout"]["line-sort-key"]),
lineSortKeyExpression: styleOptionalCastList(
map["layout"]["line-sort-key"],
),
lineWidthUnit: map["layout"]["line-width-unit"] == null
? null
: LineWidthUnit.values.firstWhere(
(e) => e.name
.toLowerCase()
.replaceAll("_", "-")
.contains(map["layout"]["line-width-unit"]),
),
lineWidthUnitExpression: styleOptionalCastList(
map["layout"]["line-width-unit"],
),
lineZOffset: styleOptionalCast(map["layout"]["line-z-offset"]),
lineZOffsetExpression: styleOptionalCastList(
map["layout"]["line-z-offset"],
),
lineBlur: styleOptionalCast(map["paint"]["line-blur"]),
lineBlurExpression: styleOptionalCastList(map["paint"]["line-blur"]),
lineBorderColor: (map["paint"]["line-border-color"] as List?)
?.toRGBAInt(),
lineBorderColorExpression: styleOptionalCastList(
map["paint"]["line-border-color"],
),
lineBorderGradient: (map["paint"]["line-border-gradient"] as List?)
?.toRGBAInt(),
lineBorderGradientExpression: styleOptionalCastList(
map["paint"]["line-border-gradient"],
),
lineBorderWidth: styleOptionalCast(map["paint"]["line-border-width"]),
lineBorderWidthExpression: styleOptionalCastList(
map["paint"]["line-border-width"],
),
lineColor: (map["paint"]["line-color"] as List?)?.toRGBAInt(),
lineColorExpression: styleOptionalCastList(map["paint"]["line-color"]),
lineCutoutFadeWidth: styleOptionalCast(
map["paint"]["line-cutout-fade-width"],
),
lineCutoutFadeWidthExpression: styleOptionalCastList(
map["paint"]["line-cutout-fade-width"],
),
lineCutoutOpacity: styleOptionalCast(map["paint"]["line-cutout-opacity"]),
lineCutoutOpacityExpression: styleOptionalCastList(
map["paint"]["line-cutout-opacity"],
),
lineDasharray: (map["paint"]["line-dasharray"] as List?)
?.map<double?>((e) => e.toDouble())
.toList(),
lineDasharrayExpression: styleOptionalCastList(
map["paint"]["line-dasharray"],
),
lineDepthOcclusionFactor: styleOptionalCast(
map["paint"]["line-depth-occlusion-factor"],
),
lineDepthOcclusionFactorExpression: styleOptionalCastList(
map["paint"]["line-depth-occlusion-factor"],
),
lineEmissiveStrength: styleOptionalCast(
map["paint"]["line-emissive-strength"],
),
lineEmissiveStrengthExpression: styleOptionalCastList(
map["paint"]["line-emissive-strength"],
),
lineGapWidth: styleOptionalCast(map["paint"]["line-gap-width"]),
lineGapWidthExpression: styleOptionalCastList(
map["paint"]["line-gap-width"],
),
lineGradient: (map["paint"]["line-gradient"] as List?)?.toRGBAInt(),
lineGradientExpression: styleOptionalCastList(
map["paint"]["line-gradient"],
),
lineOcclusionOpacity: styleOptionalCast(
map["paint"]["line-occlusion-opacity"],
),
lineOcclusionOpacityExpression: styleOptionalCastList(
map["paint"]["line-occlusion-opacity"],
),
lineOffset: styleOptionalCast(map["paint"]["line-offset"]),
lineOffsetExpression: styleOptionalCastList(map["paint"]["line-offset"]),
lineOpacity: styleOptionalCast(map["paint"]["line-opacity"]),
lineOpacityExpression: styleOptionalCastList(
map["paint"]["line-opacity"],
),
linePattern: styleOptionalCast(map["paint"]["line-pattern"]),
linePatternExpression: styleOptionalCastList(
map["paint"]["line-pattern"],
),
linePatternCrossFade: styleOptionalCast(
map["paint"]["line-pattern-cross-fade"],
),
linePatternCrossFadeExpression: styleOptionalCastList(
map["paint"]["line-pattern-cross-fade"],
),
lineTranslate: (map["paint"]["line-translate"] as List?)
?.map<double?>((e) => e.toDouble())
.toList(),
lineTranslateExpression: styleOptionalCastList(
map["paint"]["line-translate"],
),
lineTranslateAnchor: map["paint"]["line-translate-anchor"] == null
? null
: LineTranslateAnchor.values.firstWhere(
(e) => e.name
.toLowerCase()
.replaceAll("_", "-")
.contains(map["paint"]["line-translate-anchor"]),
),
lineTranslateAnchorExpression: styleOptionalCastList(
map["paint"]["line-translate-anchor"],
),
lineTrimColor: (map["paint"]["line-trim-color"] as List?)?.toRGBAInt(),
lineTrimColorExpression: styleOptionalCastList(
map["paint"]["line-trim-color"],
),
lineTrimFadeRange: (map["paint"]["line-trim-fade-range"] as List?)
?.map<double?>((e) => e.toDouble())
.toList(),
lineTrimFadeRangeExpression: styleOptionalCastList(
map["paint"]["line-trim-fade-range"],
),
lineTrimOffset: (map["paint"]["line-trim-offset"] as List?)
?.map<double?>((e) => e.toDouble())
.toList(),
lineTrimOffsetExpression: styleOptionalCastList(
map["paint"]["line-trim-offset"],
),
lineWidth: styleOptionalCast(map["paint"]["line-width"]),
lineWidthExpression: styleOptionalCastList(map["paint"]["line-width"]),
);
}