decode static method

LineLayer decode(
  1. String properties
)

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: _optionalCastList(map["layout"]["visibility"]),
    filter: _optionalCastList(map["filter"]),
    lineCap: map["layout"]["line-cap"] == null
        ? null
        : LineCap.values.firstWhere((e) => e.name
            .toLowerCase()
            .replaceAll("_", "-")
            .contains(map["layout"]["line-cap"])),
    lineCapExpression: _optionalCastList(map["layout"]["line-cap"]),
    lineJoin: map["layout"]["line-join"] == null
        ? null
        : LineJoin.values.firstWhere((e) => e.name
            .toLowerCase()
            .replaceAll("_", "-")
            .contains(map["layout"]["line-join"])),
    lineJoinExpression: _optionalCastList(map["layout"]["line-join"]),
    lineMiterLimit: _optionalCast(map["layout"]["line-miter-limit"]),
    lineMiterLimitExpression:
        _optionalCastList(map["layout"]["line-miter-limit"]),
    lineRoundLimit: _optionalCast(map["layout"]["line-round-limit"]),
    lineRoundLimitExpression:
        _optionalCastList(map["layout"]["line-round-limit"]),
    lineSortKey: _optionalCast(map["layout"]["line-sort-key"]),
    lineSortKeyExpression: _optionalCastList(map["layout"]["line-sort-key"]),
    lineZOffset: _optionalCast(map["layout"]["line-z-offset"]),
    lineZOffsetExpression: _optionalCastList(map["layout"]["line-z-offset"]),
    lineBlur: _optionalCast(map["paint"]["line-blur"]),
    lineBlurExpression: _optionalCastList(map["paint"]["line-blur"]),
    lineBorderColor:
        (map["paint"]["line-border-color"] as List?)?.toRGBAInt(),
    lineBorderColorExpression:
        _optionalCastList(map["paint"]["line-border-color"]),
    lineBorderWidth: _optionalCast(map["paint"]["line-border-width"]),
    lineBorderWidthExpression:
        _optionalCastList(map["paint"]["line-border-width"]),
    lineColor: (map["paint"]["line-color"] as List?)?.toRGBAInt(),
    lineColorExpression: _optionalCastList(map["paint"]["line-color"]),
    lineDasharray: (map["paint"]["line-dasharray"] as List?)
        ?.map<double?>((e) => e.toDouble())
        .toList(),
    lineDasharrayExpression:
        _optionalCastList(map["paint"]["line-dasharray"]),
    lineDepthOcclusionFactor:
        _optionalCast(map["paint"]["line-depth-occlusion-factor"]),
    lineDepthOcclusionFactorExpression:
        _optionalCastList(map["paint"]["line-depth-occlusion-factor"]),
    lineEmissiveStrength:
        _optionalCast(map["paint"]["line-emissive-strength"]),
    lineEmissiveStrengthExpression:
        _optionalCastList(map["paint"]["line-emissive-strength"]),
    lineGapWidth: _optionalCast(map["paint"]["line-gap-width"]),
    lineGapWidthExpression: _optionalCastList(map["paint"]["line-gap-width"]),
    lineGradient: (map["paint"]["line-gradient"] as List?)?.toRGBAInt(),
    lineGradientExpression: _optionalCastList(map["paint"]["line-gradient"]),
    lineOcclusionOpacity:
        _optionalCast(map["paint"]["line-occlusion-opacity"]),
    lineOcclusionOpacityExpression:
        _optionalCastList(map["paint"]["line-occlusion-opacity"]),
    lineOffset: _optionalCast(map["paint"]["line-offset"]),
    lineOffsetExpression: _optionalCastList(map["paint"]["line-offset"]),
    lineOpacity: _optionalCast(map["paint"]["line-opacity"]),
    lineOpacityExpression: _optionalCastList(map["paint"]["line-opacity"]),
    linePattern: _optionalCast(map["paint"]["line-pattern"]),
    linePatternExpression: _optionalCastList(map["paint"]["line-pattern"]),
    lineTranslate: (map["paint"]["line-translate"] as List?)
        ?.map<double?>((e) => e.toDouble())
        .toList(),
    lineTranslateExpression:
        _optionalCastList(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:
        _optionalCastList(map["paint"]["line-translate-anchor"]),
    lineTrimColor: (map["paint"]["line-trim-color"] as List?)?.toRGBAInt(),
    lineTrimColorExpression:
        _optionalCastList(map["paint"]["line-trim-color"]),
    lineTrimFadeRange: (map["paint"]["line-trim-fade-range"] as List?)
        ?.map<double?>((e) => e.toDouble())
        .toList(),
    lineTrimFadeRangeExpression:
        _optionalCastList(map["paint"]["line-trim-fade-range"]),
    lineTrimOffset: (map["paint"]["line-trim-offset"] as List?)
        ?.map<double?>((e) => e.toDouble())
        .toList(),
    lineTrimOffsetExpression:
        _optionalCastList(map["paint"]["line-trim-offset"]),
    lineWidth: _optionalCast(map["paint"]["line-width"]),
    lineWidthExpression: _optionalCastList(map["paint"]["line-width"]),
  );
}