首页 > 解决方案 > 传单从离线地图中删除旧/错误图块

问题描述

我有一张传单地图,它指向本地机器上的一些离线图块。最初,未找到的图块显示为灰色图像:

在此处输入图像描述

如果用户随后缩小,将照常获取当前缩放级别的相应图块。但是,当用户重新放大时,旧的“缩小”图块仍然存在,因此您最终会在当前图块的范围之外得到一个模糊的图像:

在此处输入图像描述

有没有办法删除这些图块,或者只是不加载一开始没有数据的图块?

这是我目前拥有的:

L.tileLayer("offline_map/{z}/{x}/{y}.png",{
  maxZoom: 18,
  minZoom: 3,
}).addTo(map);

L.TileLayer.include({
    _tileOnError: function (done, tile, e) {
      map.removeLayer(tile);
    } 
});

标签: javascriptleaflet

解决方案


由于您似乎正在缓存一个小矩形区域,因此您可能希望使用 的bounds选项L.TileLayer例如:

L.tileLayer("offline_map/{z}/{x}/{y}.png",{
  maxZoom: 18,
  minZoom: 3,
  bounds: L.latLngBounds([[50,10],[60,15]])
}).addTo(map);

指定这样的bounds选项将避免在该边界框之外加载切片(而不是尝试然后失败),并且会在更改缩放级别时更改切片的修剪方式。


推荐阅读