问题:
假设我的切片服务器只有缩放 8、9 和 10 的切片图像。
当客户端以缩放 11 开始时,我希望 Openlayers 获取缩放 10(服务器上的最大可用缩放)并在客户端中拉伸图块。所以,我希望用户看到一些东西,尽管质量较低,即使在缩放 11 上也是如此。
这可能吗?
更多解释:
(更多解释如下,以防问题没有意义)
默认情况下,如果 Javascript 客户端以缩放 11 重新开始,则不会显示任何内容(不好),但如果客户端以缩放 10 开始,然后放大到 11,则缩放 10 的已获取图块会被拉伸并显示(更好) 同时仍尝试从服务器获取缩放 11 个图块并获取 404。
我最好的尝试是设置tileLoadFunction选项,因为它被赋予了 [z, x, y] 值,并且显然可以设置平铺图像的 src。我说“显然”是因为我没有尝试过。问题是减小 z 的值是不够的,我还必须计算新 z 的 [x, y] ,这很复杂,我认为我应该避免手动进行。
这是图层的代码:
let heatmapLayer = new TileLayer({
visible: true,
opacity: 0.75,
source: new XYZ({
tileSize: [512, 512],
url: "http://myserver/heatmap-z{z}-x{x}-y{y}.png",
}),
});