我使用的是 地图盒-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而尝试调用的所有函数,但到目前为止,没有一个函数能解决这个问题。
我想出了一个在我的用例中能顺利工作的变通方法。我在切换回之前加载的mapbox-gl层时,运行这个函数,该层已经被隐藏。
$('#mapcontainer').width('0');
mymap.invalidateSize();
$('#mapcontainer').width('50%');
mymap.invalidateSize();
50%是原始地图容器的宽度
我还没有用vanilla JS测试过,但用jQuery很好用。