SimpleLine.fromJson constructor

SimpleLine.fromJson(
  1. Map<String, dynamic> data
)

Implementation

factory SimpleLine.fromJson(Map<String, dynamic> data) {
  // 兼容旧版本:如果有 points 就用新方式,否则用旧方式
  final bool hasPoints = data.containsKey('points');

  if (hasPoints) {
    return SimpleLine.data(
      minPointDistance: (data['minPointDistance'] ?? 2.0) as double,
      useBezierCurve: (data['useBezierCurve'] ?? false) as bool,
      points: (data['points'] as List<dynamic>)
          .map((dynamic e) => jsonToOffset(e as Map<String, dynamic>))
          .toList(),
      paint: jsonToPaint(data['paint'] as Map<String, dynamic>),
    );
  } else {
    // 旧版本兼容
    return SimpleLine.data(
      minPointDistance: (data['minPointDistance'] ?? 2.0) as double,
      path: DrawPath.fromJson(data['path'] as Map<String, dynamic>),
      paint: jsonToPaint(data['paint'] as Map<String, dynamic>),
    );
  }
}