decode static method

ModelLayer decode(
  1. String properties
)

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: _optionalCastList(map["layout"]["visibility"]),
    filter: _optionalCastList(map["filter"]),
    modelId: _optionalCast(map["layout"]["model-id"]),
    modelIdExpression: _optionalCastList(map["layout"]["model-id"]),
    modelAmbientOcclusionIntensity:
        _optionalCast(map["paint"]["model-ambient-occlusion-intensity"]),
    modelAmbientOcclusionIntensityExpression:
        _optionalCastList(map["paint"]["model-ambient-occlusion-intensity"]),
    modelCastShadows: _optionalCast(map["paint"]["model-cast-shadows"]),
    modelCastShadowsExpression:
        _optionalCastList(map["paint"]["model-cast-shadows"]),
    modelColor: (map["paint"]["model-color"] as List?)?.toRGBAInt(),
    modelColorExpression: _optionalCastList(map["paint"]["model-color"]),
    modelColorMixIntensity:
        _optionalCast(map["paint"]["model-color-mix-intensity"]),
    modelColorMixIntensityExpression:
        _optionalCastList(map["paint"]["model-color-mix-intensity"]),
    modelCutoffFadeRange:
        _optionalCast(map["paint"]["model-cutoff-fade-range"]),
    modelCutoffFadeRangeExpression:
        _optionalCastList(map["paint"]["model-cutoff-fade-range"]),
    modelEmissiveStrength:
        _optionalCast(map["paint"]["model-emissive-strength"]),
    modelEmissiveStrengthExpression:
        _optionalCastList(map["paint"]["model-emissive-strength"]),
    modelHeightBasedEmissiveStrengthMultiplier: (map["paint"]
            ["model-height-based-emissive-strength-multiplier"] as List?)
        ?.map<double?>((e) => e.toDouble())
        .toList(),
    modelHeightBasedEmissiveStrengthMultiplierExpression: _optionalCastList(
        map["paint"]["model-height-based-emissive-strength-multiplier"]),
    modelOpacity: _optionalCast(map["paint"]["model-opacity"]),
    modelOpacityExpression: _optionalCastList(map["paint"]["model-opacity"]),
    modelReceiveShadows: _optionalCast(map["paint"]["model-receive-shadows"]),
    modelReceiveShadowsExpression:
        _optionalCastList(map["paint"]["model-receive-shadows"]),
    modelRotation: (map["paint"]["model-rotation"] as List?)
        ?.map<double?>((e) => e.toDouble())
        .toList(),
    modelRotationExpression:
        _optionalCastList(map["paint"]["model-rotation"]),
    modelRoughness: _optionalCast(map["paint"]["model-roughness"]),
    modelRoughnessExpression:
        _optionalCastList(map["paint"]["model-roughness"]),
    modelScale: (map["paint"]["model-scale"] as List?)
        ?.map<double?>((e) => e.toDouble())
        .toList(),
    modelScaleExpression: _optionalCastList(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:
        _optionalCastList(map["paint"]["model-scale-mode"]),
    modelTranslation: (map["paint"]["model-translation"] as List?)
        ?.map<double?>((e) => e.toDouble())
        .toList(),
    modelTranslationExpression:
        _optionalCastList(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: _optionalCastList(map["paint"]["model-type"]),
  );
}