You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.
The exception occurs in RenderLineLayer::render() due to geometryTile.getPattern() returning empty results sometimes. GeometryTile.iconAtlas does not include the required pattern images.
GeometryTileWorker::parse() calls RenderLineLayer::createLayout() which creates a new PatternLayout.
The PatternLayout constructor is returning patternDependencies for a certain zoom level (during the layout stage), but rendering may later be performed at a different zoom level requiring different patterns.
The solution seems to be either:
The PatternLayout constructor would need to return the patterns at every zoom level, or
RenderLineLayer::render() would need to evaluate() again at whatever zoom level GeometryTileWorker::parse() used when it created the PatternLayout.
Note: I'm seeing this using a VectorSource. The TilePyramid appears to contain tiles between zoom levels 11-15 when rendering occurs at zoom=15. So the results of a PatternLayout created for zoom=11 being rendered at zoom=15 results in this error.
The text was updated successfully, but these errors were encountered:
Here is a style.json, xxx.geojson and sprites/ folder to demonstrate the bug.
I've tested it using mbgl-qt.exe from the Qt SDK. The map data is near lat=-0.05 long=0.05.
There's a maki symbol there, if you zoom out you should see it.
Zooming in/out and scrolling around near zoom=15 should cause exceptions in RenderLineLayer::render().
@timbaker I couldn't reproduce the issue using the latest master (b83030a). Given the initial commit you've suggested, I suppose this has been fixed in #13535 (/cc @ChrisLoer). Could you please verify using the latest master?
This bug is reproducible using commit 4a858eb.
This is the an example of a line-layer style causing the issue:
The exception occurs in RenderLineLayer::render() due to geometryTile.getPattern() returning empty results sometimes. GeometryTile.iconAtlas does not include the required pattern images.
GeometryTileWorker::parse() calls RenderLineLayer::createLayout() which creates a new PatternLayout.
The PatternLayout constructor is returning patternDependencies for a certain zoom level (during the layout stage), but rendering may later be performed at a different zoom level requiring different patterns.
The solution seems to be either:
Note: I'm seeing this using a VectorSource. The TilePyramid appears to contain tiles between zoom levels 11-15 when rendering occurs at zoom=15. So the results of a PatternLayout created for zoom=11 being rendered at zoom=15 results in this error.
The text was updated successfully, but these errors were encountered: