File tree Expand file tree Collapse file tree 4 files changed +50
-6
lines changed
Expand file tree Collapse file tree 4 files changed +50
-6
lines changed Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ import 'package:flutter_map_example/pages/secondary_tap.dart';
3030import 'package:flutter_map_example/pages/single_world_polys.dart' ;
3131import 'package:flutter_map_example/pages/sliding_map.dart' ;
3232import 'package:flutter_map_example/pages/tile_builder.dart' ;
33+ import 'package:flutter_map_example/pages/tile_error.dart' ;
3334import 'package:flutter_map_example/pages/tile_loading_error_handle.dart' ;
3435import 'package:flutter_map_example/pages/wms_tile_layer.dart' ;
3536import 'package:flutter_web_plugins/url_strategy.dart' ;
@@ -55,6 +56,7 @@ class MyApp extends StatelessWidget {
5556 AbortObsoleteRequestsPage .route: (context) =>
5657 const AbortObsoleteRequestsPage (),
5758 PolylinePage .route: (context) => const PolylinePage (),
59+ TileErrorPage .route: (context) => const TileErrorPage (),
5860 SingleWorldPolysPage .route: (context) => const SingleWorldPolysPage (),
5961 PolylinePerfStressPage .route: (context) =>
6062 const PolylinePerfStressPage (),
Original file line number Diff line number Diff line change 1+ import 'package:flutter/material.dart' ;
2+ import 'package:flutter_map/flutter_map.dart' ;
3+ import 'package:flutter_map_example/widgets/drawer/menu_drawer.dart' ;
4+
5+ /// Example of tile loading systematically failing.
6+ class TileErrorPage extends StatelessWidget {
7+ static const String route = '/tile_error' ;
8+
9+ const TileErrorPage ({super .key});
10+
11+ @override
12+ Widget build (BuildContext context) {
13+ return Scaffold (
14+ appBar: AppBar (title: const Text ('Tile Error' )),
15+ drawer: const MenuDrawer (TileErrorPage .route),
16+ body: FlutterMap (
17+ options: const MapOptions (
18+ initialZoom: 3 ,
19+ ),
20+ children: [
21+ TileLayer (
22+ // obviously wrong url template
23+ urlTemplate: 'https://example.com/{z}/{y}/{x}' ,
24+ tileBuilder: (context, tileWidget, tile) {
25+ if (tile.loadError) {
26+ return Center (
27+ child: Text ('${tile .coordinates .z }'
28+ '/'
29+ '${tile .coordinates .x }'
30+ '/'
31+ '${tile .coordinates .y }' ),
32+ );
33+ }
34+ return tileWidget;
35+ },
36+ ),
37+ ],
38+ ),
39+ );
40+ }
41+ }
Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ import 'package:flutter_map_example/pages/secondary_tap.dart';
3434import 'package:flutter_map_example/pages/single_world_polys.dart' ;
3535import 'package:flutter_map_example/pages/sliding_map.dart' ;
3636import 'package:flutter_map_example/pages/tile_builder.dart' ;
37+ import 'package:flutter_map_example/pages/tile_error.dart' ;
3738import 'package:flutter_map_example/pages/tile_loading_error_handle.dart' ;
3839import 'package:flutter_map_example/pages/wms_tile_layer.dart' ;
3940import 'package:flutter_map_example/widgets/drawer/menu_item.dart' ;
@@ -162,6 +163,11 @@ class MenuDrawer extends StatelessWidget {
162163 routeName: ScaleBarPage .route,
163164 currentRoute: currentRoute,
164165 ),
166+ MenuItemWidget (
167+ caption: 'Tile error' ,
168+ routeName: TileErrorPage .route,
169+ currentRoute: currentRoute,
170+ ),
165171 const Divider (),
166172 MenuItemWidget (
167173 caption: 'Repeated Worlds/Longitudes' ,
Original file line number Diff line number Diff line change @@ -170,7 +170,7 @@ class TileImage extends ChangeNotifier {
170170 loadError = true ;
171171
172172 if (! _disposed) {
173- if (errorImage != null ) _display ();
173+ _display ();
174174 onLoadError (this , exception, stackTrace);
175175 onLoadComplete (coordinates);
176176 }
@@ -184,11 +184,6 @@ class TileImage extends ChangeNotifier {
184184 loadFinishedAt = DateTime .now ();
185185
186186 if (loadError) {
187- assert (
188- errorImage != null ,
189- 'A TileImage should not be displayed if loading errors and there is no '
190- 'errorImage to show.' ,
191- );
192187 _readyToDisplay = true ;
193188 if (! _disposed) notifyListeners ();
194189 return ;
You can’t perform that action at this time.
0 commit comments