在传单绘制中编辑多边形图层时不显示移动处理程序
Move handlers not appears when editing polygon layer in leaflet-draw
我有一个文本区域,我将 GeoJson 复制到其中,地图必须显示其形状。这不是问题,直到我希望这个形状可以编辑。
所以我使用下面的代码将它转换为图层并添加到特征组,这样我就可以使用 leaflet-draw 对其进行编辑。但是此代码适用于 POINT 和 LINE,但不适用于 POLYGONS。在多边形的情况下,移动处理程序应该出现在多边形的每一侧,而不是出现。
可能是什么问题?
var drawnItems = L.featureGroup().addTo(mymap);
mymap.addControl(new L.Control.Draw({
edit: {
featureGroup: drawnItems,
poly: {
allowIntersection: false
}
},
draw: {
polygon: {
allowIntersection: false,
showArea: true
}
}
}));
var str = document.getElementById("ingeojson").value;
var shapeJson = JSON.parse(str);
var shape = L.geoJSON(shapeJson);
var shapeLayer = L.GeoJSON.geometryToLayer(shapeJson);
drawnItems.addLayer(shapeLayer);
shapeLayer.addTo(mymap);
mymap.fitBounds(shapeLayer.getBounds());
我终于解决了。这个问题和我用的leaflet和leaflet-draw的版本有关。
写这篇post的时候,我用的是leaflet-draw 0.4.7和leaflet 1.0.2,问题解决了。
我有一个文本区域,我将 GeoJson 复制到其中,地图必须显示其形状。这不是问题,直到我希望这个形状可以编辑。 所以我使用下面的代码将它转换为图层并添加到特征组,这样我就可以使用 leaflet-draw 对其进行编辑。但是此代码适用于 POINT 和 LINE,但不适用于 POLYGONS。在多边形的情况下,移动处理程序应该出现在多边形的每一侧,而不是出现。
可能是什么问题?
var drawnItems = L.featureGroup().addTo(mymap);
mymap.addControl(new L.Control.Draw({
edit: {
featureGroup: drawnItems,
poly: {
allowIntersection: false
}
},
draw: {
polygon: {
allowIntersection: false,
showArea: true
}
}
}));
var str = document.getElementById("ingeojson").value;
var shapeJson = JSON.parse(str);
var shape = L.geoJSON(shapeJson);
var shapeLayer = L.GeoJSON.geometryToLayer(shapeJson);
drawnItems.addLayer(shapeLayer);
shapeLayer.addTo(mymap);
mymap.fitBounds(shapeLayer.getBounds());
我终于解决了。这个问题和我用的leaflet和leaflet-draw的版本有关。
写这篇post的时候,我用的是leaflet-draw 0.4.7和leaflet 1.0.2,问题解决了。