-
-
Notifications
You must be signed in to change notification settings - Fork 890
Labels
Description
What is the bug?
Great work on the library, thank you. Having a negative zoomOffset for a TileLayer crashes flutter_map in v8.2.0 and v8.2.1. It used to work with the previous version although an other caching setup.
ArgumentError: Invalid argument(s): -1
#0 int._shlFromInteger (dart:core-patch/integers.dart:86:42)
#1 int.<< (dart:core-patch/integers.dart:117:49)
#2 TileCoordinatesResolver.get (package:flutter_map/src/layer/tile_layer/tile_coordinates.dart:83:22)
#3 TileImageView._retainAncestor (package:flutter_map/src/layer/tile_layer/tile_image_view.dart:146:40)
#4 TileImageView._retainAncestor (package:flutter_map/src/layer/tile_layer/tile_image_view.dart:157:14)
#5 TileImageView.staleTiles (package:flutter_map/src/layer/tile_layer/tile_image_view.dart:73:32)
#6 TileImageManager._prune (package:flutter_map/src/layer/tile_layer/tile_image_manager.dart:244:48)
#7 TileImageManager.evictAndPrune (package:flutter_map/src/layer/tile_layer/tile_image_manager.dart:201:5)
#8 _TileLayerState._loadAndPruneInVisibleBounds (package:flutter_map/src/layer/tile_layer/tile_layer.dart:690:23)
#9 _TileLayerState.didChangeDependencies (package:flutter_map/src/layer/tile_layer/tile_layer.dart:459:22)
#10 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5860:11)
#11 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5691:5)
#12 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4539:16)
#13 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7159:36)
#14 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7175:32)
#15 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4539:16)
#16 Element.updateChild (package:flutter/src/widgets/framework.dart:4004:18)
#17 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7008:14)
#18 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4539:16)
#19 Element.updateChild (package:flutter/src/widgets/framework.dart:3998:20)
#20 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5738:16)
#21 Element.rebuild (package:flutter/src/widgets/framework.dart:5427:7)
#22 ProxyElement.update (package:flutter/src/widgets/framework.dart:6041:5)
#23 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#24 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7015:14)
#25 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#26 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7015:14)
#27 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#28 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5738:16)
#29 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5874:11)
#30 Element.rebuild (package:flutter/src/widgets/framework.dart:5427:7)
#31 StatefulElement.update (package:flutter/src/widgets/framework.dart:5899:5)
#32 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#33 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5738:16)
#34 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5874:11)
#35 Element.rebuild (package:flutter/src/widgets/framework.dart:5427:7)
#36 StatefulElement.update (package:flutter/src/widgets/framework.dart:5899:5)
#37 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#38 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7015:14)
#39 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#40 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7015:14)
#41 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#42 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5738:16)
#43 Element.rebuild (package:flutter/src/widgets/framework.dart:5427:7)
#44 ProxyElement.update (package:flutter/src/widgets/framework.dart:6041:5)
#45 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:108:11)
#46 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#47 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5738:16)
#48 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5874:11)
#49 Element.rebuild (package:flutter/src/widgets/framework.dart:5427:7)
#50 StatefulElement.update (package:flutter/src/widgets/framework.dart:5899:5)
#51 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#52 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5738:16)
#53 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5874:11)
#54 Element.rebuild (package:flutter/src/widgets/framework.dart:5427:7)
#55 StatefulElement.update (package:flutter/src/widgets/framework.dart:5899:5)
#56 Element.updateChild (package:flutter/src/widgets/framework.dart:3982:15)
#57 _LayoutBuilderElement._rebuildWithConstraints.updateChildCallback (package:flutter/src/widgets/layout_builder.dart:249:18)
#58 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3046:19)
#59 _LayoutBuilderElement._rebuildWithConstraints (package:flutter/src/widgets/layout_builder.dart:272:12)
#60 RenderAbstractLayoutBuilderMixin.layoutCallback (package:flutter/src/widgets/layout_builder.dart:335:38)
#61 RenderObjectWithLayoutCallbackMixin.runLayoutCallback.<fn> (package:flutter/src/rendering/object.dart:4209:33)
#62 RenderObject.invokeLayoutCallback.<fn> (package:flutter/src/rendering/object.dart:2941:17)
#63 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1209:15)
#64 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2940:14)
#65 RenderObjectWithLayoutCallbackMixin.runLayoutCallback (package:flutter/src/rendering/object.dart:4209:5)
#66 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:449:5)
#67 RenderObject.layout (package:flutter/src/rendering/object.dart:2822:7)
#68 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#69 RenderObject.layout (package:flutter/src/rendering/object.dart:2822:7)
#70 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#71 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:646:43)
#72 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:673:12)
#73 RenderObject.layout (package:flutter/src/rendering/object.dart:2822:7)
#74 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#75 RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:1202:26)
#76 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:1255:32)
#77 RenderObject.layout (package:flutter/src/rendering/object.dart:2822:7)
#78 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:243:12)
#79 RenderObject.layout (package:flutter/src/rendering/object.dart:2822:7)
#80 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:180:12)
#81 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1118:7)
#82 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:249:7)
#83 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:419:14)
#84 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2655:7)
#85 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1160:18)
#86 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1173:15)
#87 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:629:23)
#88 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1242:13)
#89 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:495:5)
#90 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1438:15)
#91 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1351:9)
#92 SentryWidgetsBindingMixin.handleDrawFrame (package:sentry_flutter/src/binding_wrapper.dart:128:11)
#93 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1204:5)
#94 _invoke (dart:ui/hooks.dart:331:13)
#95 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:444:5)
#96 _drawFrame (dart:ui/hooks.dart:303:31)
How can we reproduce it?
Causes flutter_map to crash:
TileLayer(
zoomOffset: -5
minNativeZoom: 5,
maxNativeZoom: 18,
urlTemplate: 'https://sgx.geodatenzentrum.de/wmts_basemapde/tile/1.0.0/de_basemapde_web_raster_grau/default/DE_EPSG_3857_ADV/{z}/{y}/{x}.png',
tileProvider: NetworkTileProvider(
cachingProvider:
BuiltInMapCachingProvider.getOrCreateInstance(),
),
)Works correct:
TileLayer(
minNativeZoom: 5,
maxNativeZoom: 18,
urlTemplate: 'https://sgx.geodatenzentrum.de/wmts_basemapde/tile/1.0.0/de_basemapde_web_raster_grau/default/GLOBAL_WEBMERCATOR/{z}/{y}/{x}.png',
tileProvider: NetworkTileProvider(
cachingProvider:
BuiltInMapCachingProvider.getOrCreateInstance(),
),
)Do you have a potential solution?
No response
mash-g