Skip to content

Commit 0ed10c2

Browse files
Merge branch 'master' into fix/2022
2 parents ce1f4d6 + b5056c0 commit 0ed10c2

File tree

4 files changed

+50
-6
lines changed

4 files changed

+50
-6
lines changed

example/lib/main.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import 'package:flutter_map_example/pages/secondary_tap.dart';
3131
import 'package:flutter_map_example/pages/single_world_polys.dart';
3232
import 'package:flutter_map_example/pages/sliding_map.dart';
3333
import 'package:flutter_map_example/pages/tile_builder.dart';
34+
import 'package:flutter_map_example/pages/tile_error.dart';
3435
import 'package:flutter_map_example/pages/tile_loading_error_handle.dart';
3536
import 'package:flutter_map_example/pages/wms_tile_layer.dart';
3637
import 'package:flutter_web_plugins/url_strategy.dart';
@@ -78,6 +79,7 @@ class MyApp extends StatelessWidget {
7879
TileLoadingErrorHandle.route: (context) =>
7980
const TileLoadingErrorHandle(),
8081
TileBuilderPage.route: (context) => const TileBuilderPage(),
82+
ErrorTileBuilder.route: (context) => const ErrorTileBuilder(),
8183
InteractiveFlagsPage.route: (context) => const InteractiveFlagsPage(),
8284
ManyMarkersPage.route: (context) => const ManyMarkersPage(),
8385
MapInsideListViewPage.route: (context) => const MapInsideListViewPage(),

example/lib/pages/tile_error.dart

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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 ErrorTileBuilder extends StatelessWidget {
7+
static const String route = '/error_tile_builder';
8+
9+
const ErrorTileBuilder({super.key});
10+
11+
@override
12+
Widget build(BuildContext context) {
13+
return Scaffold(
14+
appBar: AppBar(title: const Text('Error Tile Builder')),
15+
drawer: const MenuDrawer(ErrorTileBuilder.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+
}

example/lib/widgets/drawer/menu_drawer.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import 'package:flutter_map_example/pages/secondary_tap.dart';
3535
import 'package:flutter_map_example/pages/single_world_polys.dart';
3636
import 'package:flutter_map_example/pages/sliding_map.dart';
3737
import 'package:flutter_map_example/pages/tile_builder.dart';
38+
import 'package:flutter_map_example/pages/tile_error.dart';
3839
import 'package:flutter_map_example/pages/tile_loading_error_handle.dart';
3940
import 'package:flutter_map_example/pages/wms_tile_layer.dart';
4041
import 'package:flutter_map_example/widgets/drawer/menu_item.dart';
@@ -286,6 +287,11 @@ class MenuDrawer extends StatelessWidget {
286287
routeName: TileBuilderPage.route,
287288
currentRoute: currentRoute,
288289
),
290+
MenuItemWidget(
291+
caption: 'Custom Error Tile Builder',
292+
routeName: ErrorTileBuilder.route,
293+
currentRoute: currentRoute,
294+
),
289295
MenuItemWidget(
290296
caption: 'Retina Tile Layer',
291297
routeName: RetinaPage.route,

lib/src/layer/tile_layer/tile_image.dart

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff 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;

0 commit comments

Comments
 (0)