flutter_map
flutter_map copied to clipboard
[BUG] Own tileserver on port other than 80 not usable
What is the bug?
We built our own tile server to not put huge load on OSM servers.
Unfortunatelly our Sysadmin could set this service on our domain using some higher port (eg 8005).
As I set TileLayerOptions.urlTemplate to our server (eg https://mytileserver.com:8005/tile/{z}/{x}/{y}.png) the library use some of the coordinates (x or y) while trying to download the tile from port x or y.
======== Exception caught by image resource service ================================================
The following SocketException was thrown resolving an image codec:
Connection timed out (OS Error: Connection timed out, errno = 110), address = mytileserver.com, port = 36692
What is the expected behaviour?
I think, if we change the URL, it still should work, even on port other than 80.
How can we reproduce this issue?
Change url and tiles are not loaded.
children: <Widget>[
TileLayerWidget(
options: TileLayerOptions(
urlTemplate:
'https://somedomain:8005/tile/{z}/{x}/{y}.png',
subdomains: ['a', 'b', 'c'],
userAgentPackageName: 'dev.somedemo',
),
),
],
Do you have a potential solution?
I will debug the part of URL loading, as I found the problem I try to fix it and send pull request.
Can you provide any other information?
======== Exception caught by image resource service ================================================
The following SocketException was thrown resolving an image codec:
Connection timed out (OS Error: Connection timed out, errno = 110), address = mytileserver.com, port = 36692
When the exception was thrown, this was the stack:
#0 _NativeSocket.startConnect (dart:io-patch/socket_patch.dart:682:35)
#1 _RawSocket.startConnect (dart:io-patch/socket_patch.dart:1817:26)
#2 RawSocket.startConnect (dart:io-patch/socket_patch.dart:27:23)
#3 RawSecureSocket.startConnect (dart:io/secure_socket.dart:299:22)
#4 SecureSocket.startConnect (dart:io/secure_socket.dart:77:28)
#5 _ConnectionTarget.connect (dart:_http/http_impl.dart:2449:26)
#6 _HttpClient._getConnection.connect (dart:_http/http_impl.dart:2867:12)
#7 _HttpClient._getConnection (dart:_http/http_impl.dart:2872:12)
#8 _HttpClient._openUrl (dart:_http/http_impl.dart:2727:12)
#9 _HttpClient.getUrl (dart:_http/http_impl.dart:2596:48)
#10 FMNetworkNoRetryImageProvider._loadAsync (package:flutter_map/src/layer/tile_layer/tile_provider/network_no_retry_image_provider.dart:64:58)
#11 FMNetworkNoRetryImageProvider.load (package:flutter_map/src/layer/tile_layer/tile_provider/network_no_retry_image_provider.dart:37:14)
#12 ImageProvider.resolveStreamForKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:488:13)
#13 ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:379:22)
#14 ImageProvider.resolveStreamForKey (package:flutter/src/painting/image_provider.dart:486:81)
#15 ImageProvider.resolve.<anonymous closure> (package:flutter/src/painting/image_provider.dart:333:9)
#16 ImageProvider._createErrorHandlerAndKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:448:24)
#17 SynchronousFuture.then (package:flutter/src/foundation/synchronous_future.dart:41:35)
#18 ImageProvider._createErrorHandlerAndKey (package:flutter/src/painting/image_provider.dart:445:9)
#19 ImageProvider.resolve (package:flutter/src/painting/image_provider.dart:330:5)
#20 Tile.loadTileImage (package:flutter_map/src/layer/tile_layer/tile.dart:48:36)
#21 _TileLayerState._update (package:flutter_map/src/layer/tile_layer/tile_layer.dart:420:15)
#22 _TileLayerState._setView (package:flutter_map/src/layer/tile_layer/tile_layer.dart:269:7)
#23 _TileLayerState._resetView (package:flutter_map/src/layer/tile_layer/tile_layer.dart:240:5)
#24 _TileLayerState.initState (package:flutter_map/src/layer/tile_layer/tile_layer.dart:78:5)
#25 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4942:57)
#26 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4781:5)
#27 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#28 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6350:36)
#29 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6362:32)
... Normal element mounting (7 frames)
#36 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#37 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6350:36)
#38 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6362:32)
... Normal element mounting (55 frames)
#93 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#94 Element.updateChild (package:flutter/src/widgets/framework.dart:3551:18)
#95 _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:135:18)
#96 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2597:19)
#97 _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:153:12)
#98 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2025:59)
#99 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:918:15)
#100 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2025:14)
#101 RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:227:7)
#102 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:316:5)
#103 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#104 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
#105 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#106 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:233:12)
#107 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#108 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#109 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#110 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#111 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#112 RenderSliverMultiBoxAdaptor.insertAndLayoutChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:487:13)
#113 RenderSliverList.performLayout.advance (package:flutter/src/rendering/sliver_list.dart:239:19)
#114 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:281:12)
#115 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#116 RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:137:12)
#117 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:371:11)
#118 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#119 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:510:13)
#120 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1580:12)
#121 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1489:20)
#122 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#123 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#124 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#125 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#126 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#127 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#128 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#129 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#130 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#131 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#132 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#133 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#134 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#135 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#136 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#137 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#138 RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
#139 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#140 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#141 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#142 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#143 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1003:7)
#144 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#145 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)
#146 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#147 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#148 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#149 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#150 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
#151 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#152 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#153 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#154 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#155 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#156 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#157 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#158 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#159 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#160 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#161 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#162 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#163 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#164 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#165 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#166 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#167 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#168 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#169 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#170 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#171 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#172 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#173 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#174 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#175 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#176 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#177 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#178 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#179 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#180 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#181 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#182 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#183 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#184 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3460:14)
#185 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#186 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#187 RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#188 _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:749:15)
#189 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1757:7)
#190 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
#191 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:504:19)
#192 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:892:13)
#193 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:370:5)
#194 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
#195 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1083:9)
#196 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:997:5)
#200 _invoke (dart:ui/hooks.dart:151:10)
#201 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#202 _drawFrame (dart:ui/hooks.dart:115:31)
(elided 3 frames from dart:async)
Image provider: FMNetworkNoRetryImageProvider()
Image key: FMNetworkNoRetryImageProvider()
====================================================================================================
[widgets/app_error_widget] Displayed error in AppErrorWidget:
TimeoutException after 0:00:03.000000: Future not completed
Platforms Affected
Android, iOS, Web
Severity
Erroneous: Prevents normal functioning and causes errors in the console
Frequency
Consistently: Always occurs at the same time and location
Requirements
- [X] I agree to follow this project's Code of Conduct
- [X] My Flutter/Dart installation is unaltered, and
flutter doctor
finds no relevant issues - [X] I am using the latest stable version of this package
- [X] I have checked the FAQs section on the documentation website
- [X] I have checked for similar issues which may be duplicates
Try it in chrome, open up the dev console ctrl-shift-j, and click on the network tab. What is the full URL it's trying to connect to, and if you copy/paste that URL and just paste it in your browser, does it work ?
@fodor99 Hi there, does the above suggestion work for you, or do you need more support? Happy to help more if needed!
@fodor99 Hi there, does the above suggestion work for you, or do you need more support? Happy to help more if needed!
I do not need yet more support. I hope I will solve it on this weekend.
I'm going to close this now. Let me know if you need more help!