在地图加载后切换Mapbox GL JS地图交互性

时间:2016-08-04 12:57:13

标签: javascript mapbox-gl mapbox-gl-js

创建地图后,是否可以更改地图是否具有交互性?

在mapbox-gl-js文档中,只能在创建地图时将地图标记为交互式或非交互式(option.interactive)。但由于某些原因,我需要动态更改它并切换地图交互性。类似的东西:

map.setInteractive(true);

或:

map.setInteractive(false);

感谢您的支持。

2 个答案:

答案 0 :(得分:0)

Mapbox GL JS目前没有动态setter来更改地图的交互性。这样实施起来相对简单,所以如果您想在github repository上切票,或者最好提交PR,我们肯定会考虑添加此功能。

与此同时,您可以单独启用/禁用所有交互handlers,以便在创建地图后动态实现相同的效果。

答案 1 :(得分:0)

通过禁用每个地图处理程序,我就是这样做的:

(目前正在处理mapbox-gl-js/v0.45.0

var map = new mapboxgl.Map({
    container: 'map', // container id
    style: 'mapbox://styles/mapbox/streets-v9', // stylesheet location
    center: [-74.50, 40], // starting position [lng, lat]
    zoom: 9 // starting zoom
});

// disable map interaction so users can't pan, zoom, etc
map.boxZoom.disable();
map.scrollZoom.disable();
map.dragPan.disable();
map.dragRotate.disable();
map.keyboard.disable();
map.doubleClickZoom.disable();
map.touchZoomRotate.disable();

此处记录了处理程序:https://www.mapbox.com/mapbox-gl-js/api/#Handlers