创建地图后,是否可以更改地图是否具有交互性?
在mapbox-gl-js文档中,只能在创建地图时将地图标记为交互式或非交互式(option.interactive)。但由于某些原因,我需要动态更改它并切换地图交互性。类似的东西:
map.setInteractive(true);
或:
map.setInteractive(false);
感谢您的支持。
答案 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();