executeJob method
The rendering job to execute.
@returns the tilebitmap or null if no data available for this tile @returns an exception e.g. if the server is not reachable
Implementation
@override
Future<JobResult> executeJob(Job job) async {
var pictureRecorder = ui.PictureRecorder();
var canvas = ui.Canvas(pictureRecorder);
var paint = ui.Paint();
Random random = Random();
double tileSize = MapsforgeConstants().tileSize;
paint.strokeWidth = (random.nextDouble() * 5) + 1;
paint.color = ui.Color(0xff000000 + random.nextInt(0xffffff));
paint.isAntiAlias = true;
canvas.drawLine(ui.Offset.zero, ui.Offset(tileSize, tileSize), paint);
canvas.drawLine(ui.Offset(tileSize, 0),
ui.Offset(0, tileSize), paint);
ui.ParagraphBuilder builder = ui.ParagraphBuilder(
ui.ParagraphStyle(
fontSize: 10.0,
),
)
..pushStyle(ui.TextStyle(color: Colors.black87))
..addText("${job.tile}");
canvas.drawParagraph(
builder.build()
..layout(ui.ParagraphConstraints(width: tileSize.toDouble())),
const Offset(0, 0));
var pic = pictureRecorder.endRecording();
TilePicture tileBitmap = FlutterTilePicture.fromPicture(pic);
return JobResult(tileBitmap, JOBRESULT.NORMAL); //Future.value(tileBitmap);
}