Hi developers,
My customers with poor internet connectivity are reporting a blank map screen.
Using winshaper (Releases · catchpoint/WebPageTest.win-shaper) I was able to reproduce this consistently. I created a custom profile: bandwidth in = 65536, bandwidth out = 65536, latency = 25ms, packet loss = 100%, buffer sizes = 150000 bytes.
Then run the sample app. Note that the if the tile cache for that basemap style has anything in it, then it seems to always work. So make sure you flush the cache before repro. It is here: %LOCALAPPDATA%\appname\cache\data8.
Note that I do not think this has anything to do with licensing, because I do not get any warnings or errors there. It seems to just be dependent on whether the cache has been initialized with some data.
Would love a workaround as my app is live.
Thanks!
Hello @JustinSteventon
Can you provide more information or an example of the workflow you are attempting that is failing due to limited network connectivity? I see you mentioning some caching so I'd like to make sure we know exactly what you're seeing to investigate properly.
Hi there,
The workflow is just using the map.
If you start with the template "ArcGIS Maps 200.7.0 Qt Quick C++ app" and do not make any changes other than adding an API key, then the map will fail (just gray screen) when there are network issues as described in the original post.
The problem is that the failure is not graceful as no overlays or anything else shows up - the map is just in a bad state.
Let me know if you need more info.
Thanks!
Hi again,
Normally I create the Map object with "new Map(this)". If instead, I use "new Map(SpatialReference::webMercator(), this)", then everything seems to work properly. The only caveat is that I no longer receive a Map::loadStatusChanged event.
This issue is no longer blocking, although it still seems like something worth fixing.
Thanks!
Okay thank you for that extra information @JustinSteventon , I have a feeling that will be a key piece. Just to be clear, this is what you're seeing?
* Poor network connection prevents the map from loading / displaying when using `new Map(this)`
* Poor network connection does not prevent the map from loading / displaying when using `new Map(SpatialReference::webMercator(), this)`
* When using `new Map(SpatialReference::webMercator(), this)`, you don't see the `loadStatusChanged` event. Is this also with poor network connection?
Glad it's no longer blocking, and would appreciate confirmation on the above if you can.
Yes, that's correct.
The "loadStatusChanged event not firing" may not be a bug - since there is nothing being loaded. It is odd that I get it when using "new Map(this)" and manually adding a basemap though. It looks like it is emitted when there is a change to the map's spatial reference.
It could be that the map is trying to figure out what its spatial reference should be as part of initialization. The gray screen is a symptom of that process failing. For example, normally loading a web tiled layer initializes the spatial reference as a side-effect, but if that fails (due to network connectivity), then we end up in a bad state.
Thanks for looking into this.
-Justin