私はそれを自分で解決しました。マップの初期化時にこの描画コントロールを追加しています。
drawControl = new L.Control.Draw({
draw : {
position : 'topleft',
polygon : false,
polyline : false,
rectangle : false,
circle : false
},
edit : false
});
map.addControl(drawControl);
その後、描画ツールをリセットする関数を書きました。
function setDrawingTools(layerType) {
map.removeControl(drawControl);
if (layerType == 'Polygon') {
drawControl = new L.Control.Draw({
draw : {
position : 'topleft',
polygon : {
title : 'Draw a sexy polygon!',
allowIntersection : false,
drawError : {
color : '#b00b00',
timeout : 1000
},
shapeOptions : {
color : '#bada55'
},
showArea : true
},
polyline : false,
rectangle : false,
circle : false,
marker : false
},
edit : false
});
} else if (layerType == 'Line') {
drawControl = new L.Control.Draw({
draw : {
position : 'topleft',
polygon : false,
polyline : {
metric : false
},
rectangle : false,
circle : false,
marker : false
},
edit : false
});
} else if (layerType == 'Point') {
drawControl = new L.Control.Draw({
draw : {
position : 'topleft',
polygon : false,
polyline : false,
rectangle : false,
circle : false
},
edit : false
});
}
map.addControl(drawControl);
}