Skip to content

tcoupin/leaflet-paintpolygon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚠️⚠️⚠️ This plugin is no more maintened since 2020. I am no more working with leaflet (and geographical data), I can't help you for solving bugs. ⚠️⚠️⚠️

You can use it at your own risk or fork it and change my name for yours on leaflet plugins page.

leaflet-paintpolygon

Dependency Status npm npm Twitter

Create polygon on leaflet map like Paint[brush]! Choose your brush size and draw ! Or erase... Mobile and desktop compatible, based on turf.js.

Demo

Turf packages are already included in dist js.

Use it

L.control.paintPolygon().addTo(map)

Options

 options: {
        position: 'topright',     // position of the control
        radius: 30,               // radius on start (pixel)
        minRadius: 10,            // min radius (pixel)
        maxRadius: 50,            // max radius (pixel)
        layerOptions: {},         // path style of drawed layer (see: https://leafletjs.com/reference-1.3.0.html#path-option)
        drawOptions: {            // path style on draw (see: https://leafletjs.com/reference-1.3.0.html#path-option)
            weight: 1
        },
        eraseOptions: {           // path style on erase (see: https://leafletjs.com/reference-1.3.0.html#path-option)
            color: '#ff324a',
            weight: 1
        },
        menu: {                   // Customize menu, set to false to prevent adding control UI on map, you need to build your own UI (on map or not)
        	drawErase: true,
            size: true,
            eraseAll: true
        }
}               

External control

Add menu: false in options object to prevent UI creation and bind your own UI to controls methods. See below for API and this example.

API

  • setRadius(radius): set radius of circle (in pixel)
  • startDraw(): start drawing
  • startErase(): start erasing
  • stop(): stop drawing or erasing
  • eraseAll(): erase all...
  • getData(): return feature as GeoJSON
  • setData(data): set the feature as GeoJSON
  • getLayer(): return GeoJSON layer