decode static method

FillExtrusionLayer decode(
  1. String properties
)

Implementation

static FillExtrusionLayer decode(String properties) {
  var map = json.decode(properties);
  if (map["layout"] == null) {
    map["layout"] = {};
  }
  if (map["paint"] == null) {
    map["paint"] = {};
  }
  return FillExtrusionLayer(
    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"]),
    fillExtrusionEdgeRadius: styleOptionalCast(
      map["layout"]["fill-extrusion-edge-radius"],
    ),
    fillExtrusionEdgeRadiusExpression: styleOptionalCastList(
      map["layout"]["fill-extrusion-edge-radius"],
    ),
    fillExtrusionAmbientOcclusionGroundAttenuation: styleOptionalCast(
      map["paint"]["fill-extrusion-ambient-occlusion-ground-attenuation"],
    ),
    fillExtrusionAmbientOcclusionGroundAttenuationExpression:
        styleOptionalCastList(
          map["paint"]["fill-extrusion-ambient-occlusion-ground-attenuation"],
        ),
    fillExtrusionAmbientOcclusionGroundRadius: styleOptionalCast(
      map["paint"]["fill-extrusion-ambient-occlusion-ground-radius"],
    ),
    fillExtrusionAmbientOcclusionGroundRadiusExpression:
        styleOptionalCastList(
          map["paint"]["fill-extrusion-ambient-occlusion-ground-radius"],
        ),
    fillExtrusionAmbientOcclusionIntensity: styleOptionalCast(
      map["paint"]["fill-extrusion-ambient-occlusion-intensity"],
    ),
    fillExtrusionAmbientOcclusionIntensityExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-ambient-occlusion-intensity"],
    ),
    fillExtrusionAmbientOcclusionRadius: styleOptionalCast(
      map["paint"]["fill-extrusion-ambient-occlusion-radius"],
    ),
    fillExtrusionAmbientOcclusionRadiusExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-ambient-occlusion-radius"],
    ),
    fillExtrusionAmbientOcclusionWallRadius: styleOptionalCast(
      map["paint"]["fill-extrusion-ambient-occlusion-wall-radius"],
    ),
    fillExtrusionAmbientOcclusionWallRadiusExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-ambient-occlusion-wall-radius"],
    ),
    fillExtrusionBase: styleOptionalCast(map["paint"]["fill-extrusion-base"]),
    fillExtrusionBaseExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-base"],
    ),
    fillExtrusionBaseAlignment:
        map["paint"]["fill-extrusion-base-alignment"] == null
        ? null
        : FillExtrusionBaseAlignment.values.firstWhere(
            (e) => e.name
                .toLowerCase()
                .replaceAll("_", "-")
                .contains(map["paint"]["fill-extrusion-base-alignment"]),
          ),
    fillExtrusionBaseAlignmentExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-base-alignment"],
    ),
    fillExtrusionCastShadows: styleOptionalCast(
      map["paint"]["fill-extrusion-cast-shadows"],
    ),
    fillExtrusionCastShadowsExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-cast-shadows"],
    ),
    fillExtrusionColor: (map["paint"]["fill-extrusion-color"] as List?)
        ?.toRGBAInt(),
    fillExtrusionColorExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-color"],
    ),
    fillExtrusionCutoffFadeRange: styleOptionalCast(
      map["paint"]["fill-extrusion-cutoff-fade-range"],
    ),
    fillExtrusionCutoffFadeRangeExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-cutoff-fade-range"],
    ),
    fillExtrusionEmissiveStrength: styleOptionalCast(
      map["paint"]["fill-extrusion-emissive-strength"],
    ),
    fillExtrusionEmissiveStrengthExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-emissive-strength"],
    ),
    fillExtrusionFloodLightColor:
        (map["paint"]["fill-extrusion-flood-light-color"] as List?)
            ?.toRGBAInt(),
    fillExtrusionFloodLightColorExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-flood-light-color"],
    ),
    fillExtrusionFloodLightGroundAttenuation: styleOptionalCast(
      map["paint"]["fill-extrusion-flood-light-ground-attenuation"],
    ),
    fillExtrusionFloodLightGroundAttenuationExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-flood-light-ground-attenuation"],
    ),
    fillExtrusionFloodLightGroundRadius: styleOptionalCast(
      map["paint"]["fill-extrusion-flood-light-ground-radius"],
    ),
    fillExtrusionFloodLightGroundRadiusExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-flood-light-ground-radius"],
    ),
    fillExtrusionFloodLightIntensity: styleOptionalCast(
      map["paint"]["fill-extrusion-flood-light-intensity"],
    ),
    fillExtrusionFloodLightIntensityExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-flood-light-intensity"],
    ),
    fillExtrusionFloodLightWallRadius: styleOptionalCast(
      map["paint"]["fill-extrusion-flood-light-wall-radius"],
    ),
    fillExtrusionFloodLightWallRadiusExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-flood-light-wall-radius"],
    ),
    fillExtrusionHeight: styleOptionalCast(
      map["paint"]["fill-extrusion-height"],
    ),
    fillExtrusionHeightExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-height"],
    ),
    fillExtrusionHeightAlignment:
        map["paint"]["fill-extrusion-height-alignment"] == null
        ? null
        : FillExtrusionHeightAlignment.values.firstWhere(
            (e) => e.name
                .toLowerCase()
                .replaceAll("_", "-")
                .contains(map["paint"]["fill-extrusion-height-alignment"]),
          ),
    fillExtrusionHeightAlignmentExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-height-alignment"],
    ),
    fillExtrusionLineWidth: styleOptionalCast(
      map["paint"]["fill-extrusion-line-width"],
    ),
    fillExtrusionLineWidthExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-line-width"],
    ),
    fillExtrusionOpacity: styleOptionalCast(
      map["paint"]["fill-extrusion-opacity"],
    ),
    fillExtrusionOpacityExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-opacity"],
    ),
    fillExtrusionPattern: styleOptionalCast(
      map["paint"]["fill-extrusion-pattern"],
    ),
    fillExtrusionPatternExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-pattern"],
    ),
    fillExtrusionPatternCrossFade: styleOptionalCast(
      map["paint"]["fill-extrusion-pattern-cross-fade"],
    ),
    fillExtrusionPatternCrossFadeExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-pattern-cross-fade"],
    ),
    fillExtrusionRoundedRoof: styleOptionalCast(
      map["paint"]["fill-extrusion-rounded-roof"],
    ),
    fillExtrusionRoundedRoofExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-rounded-roof"],
    ),
    fillExtrusionTranslate:
        (map["paint"]["fill-extrusion-translate"] as List?)
            ?.map<double?>((e) => e.toDouble())
            .toList(),
    fillExtrusionTranslateExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-translate"],
    ),
    fillExtrusionTranslateAnchor:
        map["paint"]["fill-extrusion-translate-anchor"] == null
        ? null
        : FillExtrusionTranslateAnchor.values.firstWhere(
            (e) => e.name
                .toLowerCase()
                .replaceAll("_", "-")
                .contains(map["paint"]["fill-extrusion-translate-anchor"]),
          ),
    fillExtrusionTranslateAnchorExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-translate-anchor"],
    ),
    fillExtrusionVerticalGradient: styleOptionalCast(
      map["paint"]["fill-extrusion-vertical-gradient"],
    ),
    fillExtrusionVerticalGradientExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-vertical-gradient"],
    ),
    fillExtrusionVerticalScale: styleOptionalCast(
      map["paint"]["fill-extrusion-vertical-scale"],
    ),
    fillExtrusionVerticalScaleExpression: styleOptionalCastList(
      map["paint"]["fill-extrusion-vertical-scale"],
    ),
  );
}