首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Leaflet.draw编辑激活

如何使用Leaflet.draw编辑激活
EN

Stack Overflow用户
提问于 2015-04-12 18:47:00
回答 1查看 2K关注 0票数 1

我不确定需要做什么才能使leaflet.draw的编辑功能工作。我创建了一个形状,但是编辑按钮之后仍然是灰色的。据我所知,我的代码和读我的一样。

代码语言:javascript
复制
// 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非常清楚地表明了这是必需的,但我找不到任何关于它的其他信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-14 19:00:01

我最终解决了这个问题。您需要从提供的代码中更改代码,以便将形状添加到drawnItems层,而不是添加到map

代码语言:javascript
复制
// 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);
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29593226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档