我有一张Leaflet地图,里面有两套我自己的瓷砖(这是露营地图)。瓷砖仅限于营地的边界,所以我不会有很多。我已经构建了一个渐进式Web应用程序(使用Workbox进行缓存),并开始考虑以下情况:
对于不存在的切片有大量请求,其中TileLayer
知道通过errorTileUrl
提供默认切片,这意味着即使在离线时也有相当多的404请求(因为切片)不会在缓存中。)但是,这对我来说似乎有些愚蠢,因为我知道哪些磁贴应该提前出现,所以我应该能够阻止脱映404s(在启动时查看大约20个失败的请求) )。
我确实需要能够显示(空白)离地贴图,因为我无法保证设备上全屏贴图的方向/几何图形。
我的主要问题是:这值得担心吗?该应用程序现在正常工作;只是想让它更有网络效率。
如果是这样,我考虑的一个选项是创建一个新的workbox.router
路由来处理检索磁贴的调用,如果它不在列表中则快速返回404,否则转到缓存/网络。或者在Leaflet(或插件)中是否有一些我已经处理过的东西?
感谢您的想法和想法。
答案 0 :(得分:2)
您应该可以使用选项在矩形区域和缩放范围上指定Leaflet Tile Layer的可用切片:
bounds
:如果设置,则只会在设置LatLngBounds
内加载切片。minNativeZoom
:磁贴源可用的最小缩放编号。如果已指定,则所有缩放级别低于minNativeZoom
的图块将从minNativeZoom
级别加载并自动缩放。maxNativeZoom
:磁贴源可用的最大缩放数。如果已指定,则所有缩放级别高于maxNativeZoom
的图块将从maxNativeZoom
级别加载并自动缩放。如果您的可用图块不填充矩形区域,则可以提供虚拟图块以填充未覆盖区域。使用服务工作者路由器可以帮助重定向到缓存中的公共虚拟磁贴。
对于外部区域,您可以使用容器背景。或者,如果你真的想要一个类似于Tile Layer的效果,那就使用虚拟的那些指向一个普通的虚拟/"没有可用的瓷砖"常量网址模板。