GPXSee icon indicating copy to clipboard operation
GPXSee copied to clipboard

Missing map tiles

Open fraxinas opened this issue 1 year ago • 5 comments

i've been having issues with missing map tiles. i'm using Version 10.7 (x86_64, Qt 6.3.0) under KDE 5.96.0, Qt Version 5.15.5 on Wayland Can't say for sure that this isn't an issue caused by something higher up than GPXSee itself though

grafik

in the log, i'm seeing messages like

https://tileserver.4umaps.com/14/8598/5538.png: Error transferring https://tileserver.4umaps.com/14/8598/5538.png - server replied:

/home/fraxinas/.cache/gpxsee/tiles/4UMaps/14-8604-5542.download: Zu viele Dateien geöffnet https://a.tile.opentopomap.org/14/8682/5663.png: Operation abgebrochen

translated from german: "too many files open" & "operation aborted"

fraxinas avatar Aug 15 '22 14:08 fraxinas

According to the attached picture, you are trying to fetch over 150 tiles with a size of ~20MB from the server. The 4umaps (the same applies to the OpenTopoMap server) server is very often overloaded so I guess the issue is on the server side (the partial rendered tiles also support this theory). Try the "basic" OpenStreetMap and see if you get similar errors - the OpenStreetMap servers are usually ready for such load.

tumic0 avatar Aug 15 '22 23:08 tumic0

You're right, OpenStreetMap actually works fine. However, the missing tiles never get fetched - i'd be okay if the download was throttled and then the tiles cached locally. But the way it is right now, unfortunately it's unusable.

fraxinas avatar Aug 16 '22 09:08 fraxinas

Please try the latest version and see if it helps. A timeout handling issue has been fixed in 1efb4e494d325f06982c6ba324e9617154c45908 so it might help in your case. But generally, overloaded servers will be problematic and there is not much one can do with them. If they respond with some error code, you can't distinguish it from a "real" network error and even in case the connection timeouts you can not make an unlimited number of retries (the current logic is no retry on any HTTP error code and 3 retries on a connection timeout for a single tile).

tumic0 avatar Aug 16 '22 23:08 tumic0

I built 11.3 from git, it behaves the same exact same way unfortunately. Maybe a way to manually trigger downloading tiles by clicking on them, zooming out and back in, switching map sources or something? Right now there simply is no apparant way to gather the missing tiles at all.

fraxinas avatar Aug 17 '22 06:08 fraxinas

I built 11.3 from git, it behaves the same exact same way unfortunately.

The latest version from git should show up as 11.4, not 11.3.

Maybe a way to manually trigger downloading tiles by clicking on them, zooming out and back in, switching map sources or something? Right now there simply is no apparant way to gather the missing tiles at all.

At the moment there are two ways how to force a reload of tiles, that have previously returned an HTTP error:

  1. Application restart.
  2. The "clear cache" action.

The second one is unusable in this case as you also lose all other already downloaded tiles. The first one is somehow usable, but not on a regular basis, just for very rare situations. An action for a manual "error queue" reset which would trigger a refetch of the missing tiles would be possible, but I do not want to mess the map menu with it and in general I'm not sure whether I want such an action at all. Fetching the tiles should either work fully automatic, or not at all.

On the other hand, there are evidently servers like 4umaps that do not cancel connections or respond slow, but rather return HTTP errors like 403, when you want to much tiles from them (looks like some DOS attack prevention). And dealing "automatic" with them is almost impossible as you can not know which tile is really inaccessible and which is only temporarily unavailable and when will it become available (you can't repeatedly retry to fetch a tile which reported an error as the fetch happens on every map move)

tumic0 avatar Aug 17 '22 18:08 tumic0