首页 文章

停止在OpenLayers 3 tileloadstart事件中加载磁贴

提问于
浏览
1

我有一个使用OpenLayers 3(版本3.13.1)中的XYZ源的Tile图层,其url属性设置为 http://my.server/map/z{z}/row{y}/{z}_{x}_{y}.jpg . 在我的服务器上可以使用文件夹z2到z8中的平铺图像 . 但是OpenLayers也试图从文件夹z1中获取图像,而这些图像没有't exist. The map displays correctly, but my browser'的控制台显示文件未找到错误 . 有没有办法在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
    });
}

任何帮助是极大的赞赏 .

1 回答

  • 2

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

    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
      })
    });
    

相关问题