【问题标题】:Stop loading a tile in OpenLayers 3 tileloadstart event在 OpenLayers 3 tileloadstart 事件中停止加载图块
【发布时间】:2016-02-17 11:08:05
【问题描述】:

我在 OpenLayers 3(版本 3.13.1)中有一个使用 XYZ 源的 Tile 层,其 url 属性设置为 http://my.server/map/z{z}/row{y}/{z}_{x}_{y}.jpg。在我的服务器上,z2 到 z8 文件夹中的平铺图像可用。但是 OpenLayers 也尝试从不存在的文件夹 z1 中获取图像。地图显示正确,但我的浏览器控制台显示文件未找到错误。有没有办法在 tileloadstart 事件中停止加载明显不存在的图块?我的代码如下:

function createTileLayer() {
    var xyzSource = new ol.source.XYZ({
         url: 'http://my.server/map/z{z}/row{y}/{z}_{x}_{y}.jpg'
    });

    xyzSource.on('tileloadstart', function(evt) {
        if (evt.tile.tileCoord[0] == 1) {
             // Stop loading the Tile ?!?!
        }
    });

    return new ol.layer.Tile({
        extent: _maxExtent,
        preload: 1,
        source: xyzSource
    });
}

非常感谢任何帮助。

【问题讨论】:

    标签: openlayers-3


    【解决方案1】:

    解决方案是正确设置源,使其不会尝试获取您没有可用的缩放级别的图像:

    var xyzSource = new ol.source.XYZ({
      url: 'http://my.server/map/z{z}/row{y}/{z}_{x}_{y}.jpg',
      tileGrid: ol.tilegrid.createXYZ({
        minZoom: 2,
        maxZoom: 8
      })
    });
    

    【讨论】:

    • 这确实是解决方案。我不知道 ol.tilegrid.createXYZ 函数。非常感谢:)
    • 谢谢@ahocevar
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多