【问题标题】:Leaflet Remove Old/Error Tiles from Offline Map传单从离线地图中删除旧/错误图块
【发布时间】:2019-12-16 12:56:04
【问题描述】:

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

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

有什么方法可以删除这些图块,或者只是不加载一开始就没有数据的图块?

这是我目前拥有的:

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);
    } 
});

【问题讨论】:

    标签: javascript leaflet


    【解决方案1】:

    由于您似乎在缓存一个小的矩形区域,您可能希望使用L.TileLayerbounds option,例如:

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

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

    【讨论】:

    • 是的,这会起作用,谢谢!唯一的缺点是我需要输入一些代码来确定边界是什么(因为地图区域可以动态更改),但这应该没问题。
    猜你喜欢
    • 2016-11-01
    • 1970-01-01
    • 2016-12-18
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多