javascript - 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() 调用之前记录绘制对象。这里有什么问题?
解决方案
您需要先添加对象
map.addControl(draw, 'top-left')
推荐阅读
- python - 如何在 Django 中创建模型后将模型分配给所有用户?
- javascript - 为什么这个简单的 JS 视频播放器不起作用?
- paypal - 如何使用 JavaScript SDK 检查 PayPal 订阅?
- api - 如何从 Google 脚本中的 XML 响应中调用 `getChild('ItemCost currencyID="GBP"', NS).getValue()`
- java - 无法使用 webdrivermanager 启动 Firefox 81.0 - Testng - Java - Maven
- ios - 在 SceneDelegate.swift 的 sceneWillResignActive 方法中使用 UserDefaults
- python - 是否有一种干净的 Pythonic 方法来覆盖 Python 子类中的默认方法 args?
- bash - 将标准输出/标准错误重定向到 bash 脚本
- r - 使用`dplyr`有条件地改变列值
- emacs - 如何在 org-tables (orgmode) 中使用逐元素操作