Since iOS 14, including the first iOS 15 beta, when a MKPolyline is added to a MKMapview with its mapType set to .hybrid, the polyline is not rendered on each map tile until the satellite image has been loaded.
This prevents the polyline to being drawn at all when the device has no connection and makes it unusable when the connection is slow because it partially draws the polyline on the few tiles that have been fetched but not on the ones still fetching. If the satellite tiles are already cached the polyline is drawn.
I’ve verified that MKOverlayRenderer.draw(_:zoomScale:in:) is immediately called when the tile is shown but the updated context doesn't show until the underlaying satellite image has been loaded.
This problem doesn't happen with the map types .satellite, .standard or .mutedStandard. It also only happens in a physical device, it doesn’t happen in the simulator.
We have not found any workaround yet and we've had to replace .hybrid for .satellite since iOS 14. Has anybody found a solution for this problem?
I've also created a bug report with a sample project to test this issue: FB9038275