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 {
Uri uri = Uri.parse(
"$uriPrefix/${job.tile.zoomLevel}/${job.tile.tileX}/${job.tile.tileY}.png");
HttpClientRequest request = await _httpClient.getUrl(uri);
//_log.info("GET >> " + uri.toString());
HttpClientResponse response = await request.close();
final _Uint8ListBuilder builder = await response.fold(
new _Uint8ListBuilder(),
(_Uint8ListBuilder buffer, List<int> bytes) => buffer..add(bytes),
);
final Uint8List content = builder.data;
var codec = await ui.instantiateImageCodec(content.buffer.asUint8List());
// add additional checking for number of frames etc here
var frame = await codec.getNextFrame();
ui.Image img = frame.image;
TileBitmap result = FlutterTileBitmap(img);
return JobResult(result, JOBRESULT.NORMAL);
}