1

我正在学习如何使用 mapboxgl,并且正在查看网站上的示例,但找不到有关如何在不显示地图的情况下创建地图的示例。有没有办法做到这一点?显示它的示例是:

var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/dark-v8',
    center: [-103.59179687498357, 40.66995747013945],
    zoom: 3,
});

但是,我只想先创建地图,但在以后想使用它之前还没有实际显示它。当我在创建 mapboxgl 对象时取出“容器”字段时,api 给了我一个错误,因为它试图在我的 html 页面中查找容器(尽管它不存在,因为我不想显示它):

Uncaught TypeError: Cannot read property 'classList' of null
4

1 回答 1

4

当您调用mapboxgl.Map构造函数时,它将在container您作为参数传入的内部创建 WebGL 画布元素。所以你需要传入一个有效的容器id。

要控制地图的可见性,您只需显示/隐藏容器 div。

#map {
   display: none;
}

然后显示地图:

document.getElementById('#map').style.display = 'block';
于 2016-06-03T08:16:53.407 回答