javascript - 传单从离线地图中删除旧/错误图块
问题描述
我有一张传单地图,它指向本地机器上的一些离线图块。最初,未找到的图块显示为灰色图像:
如果用户随后缩小,将照常获取当前缩放级别的相应图块。但是,当用户重新放大时,旧的“缩小”图块仍然存在,因此您最终会在当前图块的范围之外得到一个模糊的图像:
有没有办法删除这些图块,或者只是不加载一开始没有数据的图块?
这是我目前拥有的:
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);
}
});
解决方案
由于您似乎正在缓存一个小矩形区域,因此您可能希望使用 的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
选项将避免在该边界框之外加载切片(而不是尝试然后失败),并且会在更改缩放级别时更改切片的修剪方式。
推荐阅读
- python - 从 pandas DatetimeIndex 中删除天数
- sql - DecryptByPassPhrase 返回 null
- tensorflow - 输入 csv 与他们一起训练
- c# - 如何从foreach循环的linqQuery中获取数组中的多个值?
- sql - “ident_key = null 上的左连接表”会帮助查询速度吗?
- react-native - React Native 默认避免 {width: '100%'}
- php - Laravel url 验证没有获取参数
- javascript - 在 React.js 中映射数组时仅设置几个元素的样式
- matlab - 得到对称信号
- regex - Google Sheets ArrayFormula 获取任意长度名称的首字母