read method
Implementation
Future<Style> read() async {
final url = StyleUriMapper(key: apiKey).map(uri);
final styleText = await _httpGet(url);
final style = await compute(jsonDecode, styleText);
if (style is! Map<String, dynamic>) {
throw _invalidStyle(url);
}
final sources = style['sources'];
if (sources is! Map) {
throw _invalidStyle(url);
}
final providerByName = await _readProviderByName(sources);
final name = style['name'] as String?;
final center = style['center'];
LatLng? centerPoint;
if (center is List && center.length == 2) {
centerPoint =
LatLng((center[1] as num).toDouble(), (center[0] as num).toDouble());
}
double? zoom = (style['zoom'] as num?)?.toDouble();
if (zoom != null && zoom < 2) {
zoom = null;
centerPoint = null;
}
return Style(
theme: ThemeReader(logger: logger).read(style),
providers: TileProviders(providerByName),
name: name,
center: centerPoint,
zoom: zoom);
}