executeJob method

  1. @override
Future<JobResult> executeJob(
  1. JobRequest job
)
override

Executes a rendering job to generate a tile bitmap.

Processes the job request and generates the corresponding tile image based on the renderer's data source and configuration.

jobRequest Request containing tile coordinates and rendering parameters Returns JobResult with tile bitmap or null if no data available Throws exception if rendering fails (e.g., server unreachable)

Implementation

@override
Future<JobResult> executeJob(JobRequest job) async {
  final response = await Dio().get(
    "$uriPrefix/${job.tile.zoomLevel}/${job.tile.tileY}/${job.tile.tileX}.png",
    options: Options(responseType: ResponseType.bytes, followRedirects: false, validateStatus: (status) => status != null && status < 500),
  );

  var codec = await ui.instantiateImageCodec(response.data);
  // add additional checking for number of frames etc here
  var frame = await codec.getNextFrame();
  ui.Image img = frame.image;

  return JobResult.normal(TilePicture.fromBitmap(img));
}