MarkerRenderSettings.fromJson constructor

MarkerRenderSettings.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory MarkerRenderSettings.fromJson(Map<String, dynamic> json) {
  final Set<MarkerLabelingMode> labelingModeSet = <MarkerLabelingMode>{};
  final int packedMode = json['labelingMode'];
  for (final MarkerLabelingMode mode in MarkerLabelingMode.values) {
    if (packedMode & mode.id == mode.id) {
      labelingModeSet.add(mode);
    }
  }

  if (labelingModeSet.contains(MarkerLabelingMode.none)) {
    labelingModeSet.clear();
    labelingModeSet.add(MarkerLabelingMode.itemLabelVisible);
    labelingModeSet.add(MarkerLabelingMode.groupLabelVisible);
    labelingModeSet.add(MarkerLabelingMode.iconBottomCenter);
    labelingModeSet.add(MarkerLabelingMode.textAbove);
  }

  return MarkerRenderSettings(
    polylineInnerColor: json['polylineInnerColor'] != null
        ? ColorExtension.fromJson(json['polylineInnerColor'])
        : defaultColor,
    polylineOuterColor: json['polylineOuterColor'] != null
        ? ColorExtension.fromJson(json['polylineOuterColor'])
        : defaultColor,
    polygonFillColor: json['polygonFillColor'] != null
        ? ColorExtension.fromJson(json['polygonFillColor'])
        : defaultColor,
    labelTextColor: json['labelTextColor'] != null
        ? ColorExtension.fromJson(json['labelTextColor'])
        : defaultColor,
    polylineInnerSize: json['polylineInnerSize'].toDouble() == 0.0
        ? defaultPolylineInnerSize
        : json['polylineInnerSize'].toDouble(),
    polylineOuterSize: json['polylineOuterSize'].toDouble() == 0.0
        ? defaultPolylineOuterSize
        : json['polylineOuterSize'].toDouble(),
    labelTextSize: json['labelTextSize'].toDouble() == 2147483647.0
        ? defaultLabelTextSize
        : json['labelTextSize'].toDouble(),
    imageSize: json['imageSize'].toDouble() == -1
        ? defaultImageSize
        : json['imageSize'].toDouble(),
    labelingMode: labelingModeSet,
  );
}