provide method

  1. @override
Future<Uint8List> provide(
  1. TileIdentity tile
)
override

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();
  }
}