我不确定需要做什么才能使leaflet.draw的编辑功能工作。我创建了一个形状,但是编辑按钮之后仍然是灰色的。据我所知,我的代码和读我的一样。
// Initialise the FeatureGroup to store editable layers
var drawnItems = new L.FeatureGroup();
map.addLayer(drawnItems);
// Initialise the draw control and pass it the FeatureGroup of editable layers
var drawControl = new L.Control.Draw({
edit: {
featureGroup: drawnItems
},
draw:{
rectangle: false,
circle: false
}
});
map.addControl(drawControl);
// On Shape/Line/Marker completion
map.on('draw:created', function (e) {
var type = e.layerType,
layer = e.layer;
if (type === 'marker') {
// Do marker specific actions
}
// Do whatever else you need to. (save to db, add to map etc)
map.addLayer(layer);
});
// On Editing Completion
map.on('draw:edited', function (e) {
var layers = e.layers;
layers.eachLayer(function (layer) {
//do whatever you want, most likely save back to db
});
});我确保设置了特性组,因为readme非常清楚地表明了这是必需的,但我找不到任何关于它的其他信息。
发布于 2015-04-14 19:00:01
我最终解决了这个问题。您需要从提供的代码中更改代码,以便将形状添加到drawnItems层,而不是添加到map。
// On Shape/Line/Marker completion
map.on('draw:created', function (e) {
var type = e.layerType,
layer = e.layer;
if (type === 'marker') {
// Do marker specific actions
}
// Do whatever else you need to. (save to db, add to map etc)
drawnItems.addLayer(layer) // previously map.addLayer(layer);
});https://stackoverflow.com/questions/29593226
复制相似问题