decode static method

LocationIndicatorLayer decode(
  1. String properties
)

Implementation

static LocationIndicatorLayer decode(String properties) {
  var map = json.decode(properties);
  if (map["layout"] == null) {
    map["layout"] = {};
  }
  if (map["paint"] == null) {
    map["paint"] = {};
  }
  return LocationIndicatorLayer(
    id: map["id"],
    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"]),
    accuracyRadius: styleOptionalCast(map["paint"]["accuracy-radius"]),
    accuracyRadiusExpression: styleOptionalCastList(
      map["paint"]["accuracy-radius"],
    ),
    accuracyRadiusBorderColor:
        (map["paint"]["accuracy-radius-border-color"] as List?)?.toRGBAInt(),
    accuracyRadiusBorderColorExpression: styleOptionalCastList(
      map["paint"]["accuracy-radius-border-color"],
    ),
    accuracyRadiusColor: (map["paint"]["accuracy-radius-color"] as List?)
        ?.toRGBAInt(),
    accuracyRadiusColorExpression: styleOptionalCastList(
      map["paint"]["accuracy-radius-color"],
    ),
    bearing: styleOptionalCast(map["paint"]["bearing"]),
    bearingExpression: styleOptionalCastList(map["paint"]["bearing"]),
    bearingImage: styleOptionalCast(map["paint"]["bearing-image"]),
    bearingImageExpression: styleOptionalCastList(
      map["paint"]["bearing-image"],
    ),
    bearingImageSize: styleOptionalCast(map["paint"]["bearing-image-size"]),
    bearingImageSizeExpression: styleOptionalCastList(
      map["paint"]["bearing-image-size"],
    ),
    emphasisCircleColor: (map["paint"]["emphasis-circle-color"] as List?)
        ?.toRGBAInt(),
    emphasisCircleColorExpression: styleOptionalCastList(
      map["paint"]["emphasis-circle-color"],
    ),
    emphasisCircleGlowRange:
        (map["paint"]["emphasis-circle-glow-range"] as List?)
            ?.map<double?>((e) => e.toDouble())
            .toList(),
    emphasisCircleGlowRangeExpression: styleOptionalCastList(
      map["paint"]["emphasis-circle-glow-range"],
    ),
    emphasisCircleRadius: styleOptionalCast(
      map["paint"]["emphasis-circle-radius"],
    ),
    emphasisCircleRadiusExpression: styleOptionalCastList(
      map["paint"]["emphasis-circle-radius"],
    ),
    imagePitchDisplacement: styleOptionalCast(
      map["paint"]["image-pitch-displacement"],
    ),
    imagePitchDisplacementExpression: styleOptionalCastList(
      map["paint"]["image-pitch-displacement"],
    ),
    location: (map["paint"]["location"] as List?)
        ?.map<double?>((e) => e.toDouble())
        .toList(),
    locationExpression: styleOptionalCastList(map["paint"]["location"]),
    locationIndicatorOpacity: styleOptionalCast(
      map["paint"]["location-indicator-opacity"],
    ),
    locationIndicatorOpacityExpression: styleOptionalCastList(
      map["paint"]["location-indicator-opacity"],
    ),
    perspectiveCompensation: styleOptionalCast(
      map["paint"]["perspective-compensation"],
    ),
    perspectiveCompensationExpression: styleOptionalCastList(
      map["paint"]["perspective-compensation"],
    ),
    shadowImage: styleOptionalCast(map["paint"]["shadow-image"]),
    shadowImageExpression: styleOptionalCastList(
      map["paint"]["shadow-image"],
    ),
    shadowImageSize: styleOptionalCast(map["paint"]["shadow-image-size"]),
    shadowImageSizeExpression: styleOptionalCastList(
      map["paint"]["shadow-image-size"],
    ),
    topImage: styleOptionalCast(map["paint"]["top-image"]),
    topImageExpression: styleOptionalCastList(map["paint"]["top-image"]),
    topImageSize: styleOptionalCast(map["paint"]["top-image-size"]),
    topImageSizeExpression: styleOptionalCastList(
      map["paint"]["top-image-size"],
    ),
  );
}