tangram-es
tangram-es copied to clipboard
Tile fallback
Add support for getting tile for lower zoom if tile for higher zoom is not available.
Use case and current state: User has mbtiles tile source which for some areas has tile data let's say only for zoom 10. Then he zooms to zoom 15 and the current state is that on the map he does not see anything. In this case it would be better to see a tile from zoom 10 rather than nothing.
New behavior:
When user want to show some location on the map and tile is not available in mbtiles, it would search tile parents until mbtiles contain some parent which does exist in mbtiles and then return TileID
of that parent.
I have implemented it for MBTilesDataSource
and MemoryCacheDataSource
.
Is it intended to be an MBTiles-datasource-only feature?
This seems related to the max_zoom
parameter for data sources (https://github.com/tangrams/tangram-docs/blob/master/docs/Syntax-Reference/sources.md#max_zoom). If you know that your tile source only has tiles up to zoom 10 then you can specify max_zoom: 10
in the data source configuration and tiles will be "overzoomed" beyond zoom 10. However if the maximum zoom level of your tile source is not constant, then this isn't a good solution.
@bcamper I have currently implemented it for MBTilesDataSource
and MemoryCacheDataSource
.
@matteblair I know about max_zoom
parameter but in my case the tiles which mbtiles contains are does not have constant z
coordinate. Here and there may be tiles with another maximum z
coordinate. Do you mean that this tile fallback is not a good solution in this case or your proposed solution of using max_zoom
?
Oh my comment wasn't clear - I meant that if you don't have a constant maximum z across your data source, then max_zoom
isn't a good solution. Some kind of "fallback" behavior like this makes more sense in that case.
So I will be waiting for your review of this pull request. I can also do any changes/updates to it.