在调整大小或平移之前,传单地图不能正确更新背景磁贴。

问题描述 投票:0回答:1

我使用的是 地图盒-GL-宣传单 在小册子中渲染矢量图层。我有一组背景砖,可以通过图层控件添加它们。最初当第一次打开地图并从图层控件中选择每个图层时,没有加载或更新问题。当平移到一个新的区域并从图层控件中选择其他背景砖时,问题就会出现。在进行重新缩放或平移操作之前,地图无法加载。背景贴图加载卡住问题的例子

    map.on('baselayerchange', function (e) {
      console.log("Layer Changed");
      //map._update();
      //map.invalidateSize();
      //map._resize();
      //map.resize();
      //setTimeout(function(){ map.invalidateSize()}, 400);
      //setTimeout(function(){ map.resize()}, 3000);
    });

注释出来的是我为了解决这个bug而尝试调用的所有函数,但到目前为止,没有一个函数能解决这个问题。

javascript leaflet mapbox-gl-js
1个回答
0
投票

我想出了一个在我的用例中能顺利工作的变通方法。我在切换回之前加载的mapbox-gl层时,运行这个函数,该层已经被隐藏。

$('#mapcontainer').width('0');
mymap.invalidateSize();
$('#mapcontainer').width('50%');
mymap.invalidateSize();

50%是原始地图容器的宽度

我还没有用vanilla JS测试过,但用jQuery很好用。

© www.soinside.com 2019 - 2024. All rights reserved.