Leaflet.draw mapping: How to initiate the draw function without toolbar?

gis, javascript, leaflet, leaflet.draw

Solution

This simple code works for me:

new L.Draw.Polyline(map, drawControl.options.polyline).enable();

Just put it into the onclick handler of your custom button (or wherever you want).

The variables `map` and `drawControl` are references to your leaflet map and draw control.

Diving into the source code (leaflet.draw-src.js) you can find the functions to draw the other elements and to edit or delete them.

new L.Draw.Polygon(map, drawControl.options.polygon).enable()
new L.Draw.Rectangle(map, drawControl.options.rectangle).enable()
new L.Draw.Circle(map, drawControl.options.circle).enable()
new L.Draw.Marker(map, drawControl.options.marker).enable()

new L.EditToolbar.Edit(map, {
                featureGroup: drawControl.options.featureGroup,
                selectedPathOptions: drawControl.options.edit.selectedPathOptions
            })
new L.EditToolbar.Delete(map, {
                featureGroup: drawControl.options.featureGroup
            })

I hope this will be useful for you too.

EDIT: The `L.EditToolbar.Edit` and `L.EditToolbar.Delete` classes expose the following useful methods:

- enable(): to start edit/delete mode

- disable(): to return to standard mode

- save(): to save changes (it fires draw:edited / draw:deleted events)

- revertLayers(): to undo changes

Problem

For anyone experienced with leaflet or leaflet.draw plugin: I want to initiate drawing a polygon without using the toolbar from `leaflet.draw`. I've managed to find the property that allows editing without using the toolbar (`layer.editing.enable();`) by searching online (it's not in the main documentation). I can't seem to find how to begin drawing a polygon without the toolbar button. Any help would be much appreciated! Thank you :)

Original source

Related problems