OpenLayers 3 - 视网膜与缓存图块

OpenLayers 3 - retina vs cached tiles

我有一个应用程序,它为来自 GeoServer (GeoWebcache) 切片缓存的一些图层提供服务。默认情况下,它以 256*256 像素分辨率存储它们,但 ol.source.TileWMS 源在使用视网膜 Macbook Pro 时请求 512*512 像素分辨率,这导致服务器回复:

400: The requested tile dimensions 512x512 do not match those of the grid set (256x256)

(它在我的 Lenovo T420 上完美运行。)有没有办法强制它在 rMBP 上也使用 256*256 tiles?

提前致谢!

此致, Balázs Eigner

好的,看起来很容易解决:您只需在源上将 'hidpi' 选项设置为 false 即可。

var layers = [ new ol.layer.Tile({
        source : new ol.source.TileWMS({
            hidpi : false,
            url : tiledArcGISMapServer,
            params : {
                'LAYERS' : 'guangdong_level16',
                'TILED' : true,
                'SRS' : 'EPSG:900913',
                'FORMAT' : 'image/jpeg'
            },
            tileGrid : gr,
            serverType : 'geoserver'
        })
    }) /* , layer */];