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
When polylines are renderer, i.e roads, the thickness of the line is not considered when clipping pixels outside the tile. This can lead to discontinuities of lines across tiles when the polyline data does not have enough buffer outside the tile.
In this example polyline data has vertices within the tile (the last vertex is at the tile boundary but not beyond) and this causes the following discontinuity:
The following shows what happens when a first tile is rendered:
The green pixels are retained while the red ones are outside the tile and are therefore discarded.
The following shows what happens when second tile is rendered:
For more context this is the wireframe geometry of the rendered road in the second tile:
The issue hasn't been encountered so far because most data has a buffer around the tile. The buffer size depends on the road thickness which is defined in the style and is not part of the MVT data. For robustness MapLibre should not rely on a buffer large enough to avoid this issue. Instead MapLibre should gather the data from adjacent tiles and extend the geometry based on thickness. Alternatively the renderer should be aware of adjacent tiles (This is maybe not trivial).
This issue exists in both MapLibre-Native and MapLibre-GL-JS. The same MapLibre-Native issue is here
The text was updated successfully, but these errors were encountered:
Maplibre assumes there is a tile boundary, this is needed for a lot of reasons, namely for rendering areas.
I'm not sure I agree with the statements here about not relaying on the fact that tiles has "padding".
Can you better explain the problem here? Why can't you use tiles with "padding"?
I have MVT data without boundaries and is therefore incompatible with MabLibre if boundaries are part of the requirements. How much boundary is required also depends on the style: If the data has extra 8 units but in the style I set the road size to be more than 8 units then I'll hit this issue. MapLibre should at least throw a warning about compatibility if such case occurs
True, how much boundary is usually configured in the tile creation process, and you should tweak it according to your style.
Feel free to simply a PR with the relevant check and the relevant warning.
When polylines are renderer, i.e roads, the thickness of the line is not considered when clipping pixels outside the tile. This can lead to discontinuities of lines across tiles when the polyline data does not have enough buffer outside the tile.
In this example polyline data has vertices within the tile (the last vertex is at the tile boundary but not beyond) and this causes the following discontinuity:
The following shows what happens when a first tile is rendered:
The green pixels are retained while the red ones are outside the tile and are therefore discarded.
The following shows what happens when second tile is rendered:
For more context this is the wireframe geometry of the rendered road in the second tile:
The issue hasn't been encountered so far because most data has a buffer around the tile. The buffer size depends on the road thickness which is defined in the style and is not part of the MVT data. For robustness MapLibre should not rely on a buffer large enough to avoid this issue. Instead MapLibre should gather the data from adjacent tiles and extend the geometry based on thickness. Alternatively the renderer should be aware of adjacent tiles (This is maybe not trivial).
This issue exists in both MapLibre-Native and MapLibre-GL-JS. The same MapLibre-Native issue is here
The text was updated successfully, but these errors were encountered: