Mapbox地图无法在页面加载时正确呈现

时间:2015-10-23 16:55:29

标签: javascript angularjs mapbox

在页面加载时,我只获得了Mapbox地图的部分渲染。如果您更改浏览器的宽度或检查页面,则地图似乎会卡入到位并正确呈现。我能够在JSFiddle My_Mapbox_Map中重现这个问题。我已经尝试在所有地图逻辑完成后添加以下代码。

`setTimeout(function() { map.invalidateSize(); }, 200);`

这在JSFiddle中运行良好,但在我的应用程序中,它最多可以在50%的时间内运行,而且从不适用于FireFox。多次刷新屏幕最终会导致地图仅部分渲染。

2 个答案:

答案 0 :(得分:2)

$timeout包裹0秒为我工作。在Firefox中也确认了。

$timeout(function(){
    map.setView([39.53818, -79.43430000000001], 7);
},0);

答案 1 :(得分:1)

如果超时不够长怎么办?如果您等到地图准备好设置视图,您就不会有这种担忧。请参阅下面的参考代码和jsfiddle示例。

map.whenReady(function()  {
  map.setView([39.53818, -79.43430000000001], 7);
});

http://jsfiddle.net/matttyxm/88onpp6a/