import 'package:aves/model/device.dart'; import 'package:aves/widgets/common/map/leaflet/vector_style_reader_extra.dart'; import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:vector_map_tiles/vector_map_tiles.dart'; import 'package:vector_tile_renderer/vector_tile_renderer.dart' as vtr; class OpenTopoMapLayer extends StatelessWidget { const OpenTopoMapLayer({super.key}); @override Widget build(BuildContext context) { return TileLayer( urlTemplate: 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png', subdomains: const ['a', 'b', 'c'], retinaMode: MediaQuery.devicePixelRatioOf(context) > 1, userAgentPackageName: device.userAgent, ); } } class OSMHotLayer extends StatelessWidget { const OSMHotLayer({super.key}); @override Widget build(BuildContext context) { return TileLayer( urlTemplate: 'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', subdomains: const ['a', 'b', 'c'], retinaMode: MediaQuery.devicePixelRatioOf(context) > 1, userAgentPackageName: device.userAgent, ); } } class StamenWatercolorLayer extends StatelessWidget { const StamenWatercolorLayer({super.key}); @override Widget build(BuildContext context) { return TileLayer( urlTemplate: 'https://watercolormaps.collection.cooperhewitt.org/tile/watercolor/{z}/{x}/{y}.jpg', retinaMode: MediaQuery.devicePixelRatioOf(context) > 1, userAgentPackageName: device.userAgent, ); } } class OsmLibertyLayer extends StatefulWidget { const OsmLibertyLayer({super.key}); @override State createState() => _OsmLibertyLayerState(); } class _OsmLibertyLayerState extends State { late final Future _tileProviderFuture; late final Future