larsmaxfield / maplibre-gl-js

MapLibre GL JS - Interactive vector tile maps in WebGL2
https://maplibre.org/maplibre-gl-js/docs/
Other
0 stars 0 forks source link

Raster tilesets covering non-square areas with aspect ratios ≥2:1 do not show with terrain on #18

Open larsmaxfield opened 1 month ago

larsmaxfield commented 1 month ago

With terrain on, tilesets covering non-square areas with aspect ratios ≥2:1 do not show.

In other words, imagine you have a very wide photograph and accompanying heightmap 30·000 px × 10·000 px you wish to visualize in MapLibre. You generate raster tiles of the photograph and raster DEM tiles of the heightmap, resulting in a folder structure which is only partially filled relative to standard square-area tileset. If you load the tiles in MapLibre with terrain on, the photograph raster tiles do not show. If you turn the terrain off, the tiles show. The terrain tiles are shown in either situation.

larsmaxfield commented 1 month ago

With terrain on, lower resolution tiles (one level higher) are requested for performance, but I suspect that this request does not properly handle missing tiles, which would be the case for tilesets covering areas of ≥2:1 aspect ratio.

larsmaxfield commented 1 month ago

A downstream solution would be to pad the photograph (and heightmap?) to a square area before tiling, resulting in a tileset covering a square area. Since we currently use PNG, we could pad that with transparent almost-black RGBA (1, 1, 1, 0).

An upstream solution would be needed for the "XY Simple Map" like #1.