createErrorBitmap method

Future<TileBitmap> createErrorBitmap(
  1. int tileSize,
  2. dynamic error
)

creates a bitmap tile with the given errormessage

Implementation

Future<TileBitmap> createErrorBitmap(int tileSize, dynamic error) async {
  var pictureRecorder = ui.PictureRecorder();
  var canvas = ui.Canvas(pictureRecorder);
  var paint = ui.Paint();
  paint.strokeWidth = 1;
  paint.color = const ui.Color(0xffaaaaaa);
  paint.isAntiAlias = true;

  canvas.drawLine(ui.Offset(_margin, _margin),
      ui.Offset(tileSize - _margin, _margin), paint);
  canvas.drawLine(ui.Offset(_margin, _margin),
      ui.Offset(_margin, tileSize - _margin), paint);
  canvas.drawLine(ui.Offset(tileSize - _margin, _margin),
      ui.Offset(tileSize - _margin, tileSize - _margin), paint);
  canvas.drawLine(ui.Offset(_margin, tileSize - _margin),
      ui.Offset(tileSize - _margin, tileSize - _margin), paint);

  ui.ParagraphBuilder builder = ui.ParagraphBuilder(
    ui.ParagraphStyle(fontSize: 10.0, textAlign: TextAlign.center),
  )
    ..pushStyle(ui.TextStyle(color: Colors.black87))
    ..addText("${error?.toString() ?? "Error"}");
  canvas.drawParagraph(
      builder.build()
        ..layout(ui.ParagraphConstraints(width: tileSize - _margin * 2)),
      Offset(_margin, _margin));

  var pic = pictureRecorder.endRecording();
  ui.Image img = await pic.toImage(tileSize, tileSize);
//    var byteData = await img.toByteData(format: ui.ImageByteFormat.png);
//    var buffer = byteData.buffer.asUint8List();

  FlutterTileBitmap tileBitmap = FlutterTileBitmap(img);
  return tileBitmap; //Future.value(tileBitmap);
}