在Openlayers中的当前视口之外请求并缓存WMT/平铺WMS平铺

在Openlayers中的当前视口之外请求并缓存WMT/平铺WMS平铺,openlayers,Openlayers,我正在开发一个需要同时请求多个WMT/平铺WMS层的应用程序。我知道这总是会带来性能开销,但这样做的能力是应用程序功能的核心。我正在寻找提高性能的方法,我想尝试的一种方法是在当前视口范围之外预加载和缓存分幅。我的想法是,应用程序可以利用用户静止的时间来准备周围的瓷砖,当地图移动时,可以从缓存中渲染这些瓷砖 Openlayers在默认情况下对WMT和平铺WMS层执行此操作的程度很小,但我想控制发生这种情况的程度。我了解到,对于WMS层,比率和缓冲区参数可用于操纵用于请求WMS层的BBOX的大小,但

我正在开发一个需要同时请求多个WMT/平铺WMS层的应用程序。我知道这总是会带来性能开销,但这样做的能力是应用程序功能的核心。我正在寻找提高性能的方法,我想尝试的一种方法是在当前视口范围之外预加载和缓存分幅。我的想法是,应用程序可以利用用户静止的时间来准备周围的瓷砖,当地图移动时,可以从缓存中渲染这些瓷砖


Openlayers在默认情况下对WMT和平铺WMS层执行此操作的程度很小,但我想控制发生这种情况的程度。我了解到,对于WMS层,
比率
缓冲区
参数可用于操纵用于请求WMS层的BBOX的大小,但无法找到允许WMT/平铺WMS层发生这种情况的任何参数信息。Openlayers中是否有现成的功能?如果没有,是否可以向请求提供自定义的平铺索引(即从视口+缓冲区中删除),或者这是否需要完全自定义的内容来发出请求?谢谢。

您可以使用更大的视口,但要隐藏溢出并重新定位控件,使其显示所需的大小。它会影响fit()等操作的工作方式


html,正文{
保证金:0;
填充:0;
宽度:100%;
身高:100%;
溢出:隐藏;
}
.地图{
位置:绝对位置;
宽度:200%;
身高:200%;
左-50%;
前-50%;
}
.map div.ol-zoom{
左:计算值(25%+0.5em);
顶部:钙(25%+0.5em);
}
.map分区ol-属性{
右:计算值(25%+0.5em);
底部:钙(25%+0.5em);
}
.map div.ol-rotate{
右:计算值(25%+0.5em);
顶部:钙(25%+0.5em);
}
OpenLayers视图上的视图示例
var source=new ol.source.OSM();
var map=新ol.map({
目标:“地图”,
图层:[新建ol.layer.Tile({source:source})],
视图:新ol.view({
中心:Lonlat的其他项目([2.3442,48.8635]),
缩放:10
})
});

谢谢,这是一个很好的解决方案。我喜欢无论源类型如何,它都能正常工作,在我使用地图查看图像的情况下,它也能正常工作