0

我有一个文本区域,我将 GeoJson 复制到其中,并且地图必须显示其形状。在我希望此形状可编辑之前,这不是问题。所以我使用下面的代码将其转换为图层并添加到特征组,以便我可以使用传单绘制对其进行编辑。但此代码适用于 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());
4

1 回答 1

1

我终于解决了。问题与我使用的传单和传单绘制版本有关。

在写这篇文章的时候,我使用了leaflet-draw 0.4.7和leaflet 1.0.2,问题就解决了。

于 2017-01-02T07:22:29.043 回答