provide method
provides a tile as a pbf
or mvt
format
Implementation
@override
Future<Uint8List> provide(TileIdentity tile) async {
_checkTile(tile);
final uri = Uri.parse(_urlProvider.url(tile));
final client = RetryClient(Client());
try {
final response = await client.get(uri, headers: httpHeaders);
if (response.statusCode == 200) {
return response.bodyBytes;
}
final logSafeUri = uri.toString().split(RegExp(r'\?')).first;
throw ProviderException(
message:
'Cannot retrieve tile: HTTP ${response.statusCode}: $logSafeUri ${response.body}',
statusCode: response.statusCode,
retryable: _isRetryable(response.statusCode)
? Retryable.retry
: Retryable.none);
} on ClientException catch (e) {
throw ProviderException(message: e.message, retryable: Retryable.retry);
} finally {
client.close();
}
}