首页 > 解决方案 > Mapbox Draw(自定义模式) - 为什么在 draw 时 changeMode() 未定义?

问题描述

我想在 Mapbox Draw 中使用自定义模式。我这样声明绘图对象:

  var draw = new MapboxDraw({
        displayControlsDefault: false,
        controls: {
            polygon: false,
            line_string: true,
            point: false,
            trash: true,
        },
        modes: Object.assign({
            custom_mode: CustomMode,
        }, MapboxDraw.modes),
    });

然后我想改变模式:

map.on('load', function () {
    draw.changeMode("custom_mode");
    map.addControl(draw, 'bottom-right');
});

结果:错误:无法读取未定义的属性“changeMode”。但我可以在 changeMode() 调用之前记录绘制对象。这里有什么问题?

标签: javascriptmapboxdrawmapbox-gl

解决方案


您需要先添加对象

map.addControl(draw, 'top-left')

推荐阅读