У меня проблема с отрисовкой фигур с помощью элемента управления Leaflet. Я создал элемент управления рисованием на своей карте, который позволяет пользователям рисовать фигуры (маркеры, линии и т. Д.).
Когда я щелкаю по любому элементу на панели управления рисованием, в консоли браузера появляется следующая ошибка.
Uncaught TypeError: Cannot read property 'Feature' of undefined
at NewClass.addHooks (Draw.Polyline.js:71)
at NewClass.enable (leaflet.js:5)
at NewClass.enable (Draw.Feature.js:38)
at HTMLAnchorElement.handler (DomEvent.js:79)
Я пытался импортировать разные версии Leaflet.draw. Такие как это.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.js"></script>
И это.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw-src.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw-src.js"></script>
Однако, похоже, что ни один из импортеров не работает.
Вот код.
let map = L.map('map', { drawControl: true })
.setView([42.35, -71.08], 13);
let imageryLayer = L.esri.basemapLayer("Imagery").addTo(map);
let imageryLabelLayer = L.esri.basemapLayer("ImageryLabels").addTo(map);
// Initialise the FeatureGroup to store editable layers
let editableLayers = new L.FeatureGroup();
map.addLayer(editableLayers);
let drawPluginOptions =
{
position: 'topright',
draw: {
polygon: {
allowIntersection: false, //only allow simple polygons
drawError: {
color: 'e1e100',
message: '<strong>Oh snap!<strong> you can\'t draw that!'
}
},
shapeOptions: {
color: '#97009c'
},
polyline: false,
circle: false,
rectangle: false,
marker: false,
},
edit: {
featureGroup: editableLayers,
remove: false
}
};
let drawControl = new L.Control.Draw({ edit: {featureGroup: editableLayers}});
map.addControl(drawControl);
map.on('draw:created', function (e) {
let type = e.layerType,
layer = e.layer;
if (type === 'marker') {
layer.bindPopup('A popup!');
}
editableLayers.addLayer(layer);
});
Это проблема с библиотекой? Или проблема в том, как я инициализировал и использовал свой элемент управления рисованием?