我从磁盘提供地图png文件,我有缩放级别15的整个城市的瓷砖png.我还有缩放级别16-18的瓷砖,但仅限于某些区域.
我想设置切片图层,这样当用户处于缩放级别18时,地图将显示来自级别15的缩放图块作为后备.
我尝试设置选项maxNativeZoom,但对我没用.
这是我的代码:
offlineLayer = L.mapBox.tileLayer(tileJSON,{ minZoom: 8,maxZoom: 18,maxNativeZoom: 15 }); map.addLayer(offlineLayer,'Offline',1);
我可以使用某些选项,或者我需要以某种方式破解它吗?或者是否有一些示例代码?
解决方法
只是为了让人们知道我前段时间写过
Leaflet.TileLayer.Fallback插件来解决这个确切的用例:
Replaces missing Tiles (404 error) by scaled lower zoom Tiles.
在OP的情况下,你只需像往常一样指定maxZoom Tile Layer选项,并且每当在当前缩放级别发现缺少一个tile时,插件将尝试用前一缩放级别的“父”tile替换它(缩放和适当剪裁,使其适合丢失的瓷砖),依此类推,直到找到瓷砖或达到minZoom.
L.tileLayer.fallback(urlTemplate,{ minZoom: 8,maxZoom: 18 });
Disclaimer: I am the author of that plugin.