decode static method
Implementation
static ModelLayer decode(String properties) {
var map = json.decode(properties);
if (map["layout"] == null) {
map["layout"] = {};
}
if (map["paint"] == null) {
map["paint"] = {};
}
return ModelLayer(
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"]),
modelAllowDensityReduction: styleOptionalCast(
map["layout"]["model-allow-density-reduction"],
),
modelAllowDensityReductionExpression: styleOptionalCastList(
map["layout"]["model-allow-density-reduction"],
),
modelId: styleOptionalCast(map["layout"]["model-id"]),
modelIdExpression: styleOptionalCastList(map["layout"]["model-id"]),
modelAmbientOcclusionIntensity: styleOptionalCast(
map["paint"]["model-ambient-occlusion-intensity"],
),
modelAmbientOcclusionIntensityExpression: styleOptionalCastList(
map["paint"]["model-ambient-occlusion-intensity"],
),
modelCastShadows: styleOptionalCast(map["paint"]["model-cast-shadows"]),
modelCastShadowsExpression: styleOptionalCastList(
map["paint"]["model-cast-shadows"],
),
modelColor: (map["paint"]["model-color"] as List?)?.toRGBAInt(),
modelColorExpression: styleOptionalCastList(map["paint"]["model-color"]),
modelColorMixIntensity: styleOptionalCast(
map["paint"]["model-color-mix-intensity"],
),
modelColorMixIntensityExpression: styleOptionalCastList(
map["paint"]["model-color-mix-intensity"],
),
modelCutoffFadeRange: styleOptionalCast(
map["paint"]["model-cutoff-fade-range"],
),
modelCutoffFadeRangeExpression: styleOptionalCastList(
map["paint"]["model-cutoff-fade-range"],
),
modelElevationReference: map["paint"]["model-elevation-reference"] == null
? null
: ModelElevationReference.values.firstWhere(
(e) => e.name
.toLowerCase()
.replaceAll("_", "-")
.contains(map["paint"]["model-elevation-reference"]),
),
modelElevationReferenceExpression: styleOptionalCastList(
map["paint"]["model-elevation-reference"],
),
modelEmissiveStrength: styleOptionalCast(
map["paint"]["model-emissive-strength"],
),
modelEmissiveStrengthExpression: styleOptionalCastList(
map["paint"]["model-emissive-strength"],
),
modelHeightBasedEmissiveStrengthMultiplier:
(map["paint"]["model-height-based-emissive-strength-multiplier"]
as List?)
?.map<double?>((e) => e.toDouble())
.toList(),
modelHeightBasedEmissiveStrengthMultiplierExpression:
styleOptionalCastList(
map["paint"]["model-height-based-emissive-strength-multiplier"],
),
modelOpacity: styleOptionalCast(map["paint"]["model-opacity"]),
modelOpacityExpression: styleOptionalCastList(
map["paint"]["model-opacity"],
),
modelReceiveShadows: styleOptionalCast(
map["paint"]["model-receive-shadows"],
),
modelReceiveShadowsExpression: styleOptionalCastList(
map["paint"]["model-receive-shadows"],
),
modelRotation: (map["paint"]["model-rotation"] as List?)
?.map<double?>((e) => e.toDouble())
.toList(),
modelRotationExpression: styleOptionalCastList(
map["paint"]["model-rotation"],
),
modelRoughness: styleOptionalCast(map["paint"]["model-roughness"]),
modelRoughnessExpression: styleOptionalCastList(
map["paint"]["model-roughness"],
),
modelScale: (map["paint"]["model-scale"] as List?)
?.map<double?>((e) => e.toDouble())
.toList(),
modelScaleExpression: styleOptionalCastList(map["paint"]["model-scale"]),
modelScaleMode: map["paint"]["model-scale-mode"] == null
? null
: ModelScaleMode.values.firstWhere(
(e) => e.name
.toLowerCase()
.replaceAll("_", "-")
.contains(map["paint"]["model-scale-mode"]),
),
modelScaleModeExpression: styleOptionalCastList(
map["paint"]["model-scale-mode"],
),
modelTranslation: (map["paint"]["model-translation"] as List?)
?.map<double?>((e) => e.toDouble())
.toList(),
modelTranslationExpression: styleOptionalCastList(
map["paint"]["model-translation"],
),
modelType: map["paint"]["model-type"] == null
? null
: ModelType.values.firstWhere(
(e) => e.name
.toLowerCase()
.replaceAll("_", "-")
.contains(map["paint"]["model-type"]),
),
modelTypeExpression: styleOptionalCastList(map["paint"]["model-type"]),
);
}