leaflet-paintpolygon
Version:
Leaflet plugin to create polygon with circle, for touchscreen
60 lines (46 loc) • 2.56 kB
Markdown
[](https://david-dm.org/tcoupin/leaflet-paintpolygon)
[](https://www.npmjs.com/package/leaflet-paintpolygon)
[](https://www.npmjs.com/package/leaflet-paintpolygon)
[](https://twitter.com/intent/tweet?text=Wow:&url=https%3A%2F%2Fgithub.com%2Ftcoupin%2Fleaflet-paintpolygon)
Create polygon on leaflet map like Paint[brush]! Choose your brush size and draw ! Or erase...
Mobile and desktop compatible, based on [turf.js](http://turfjs.org).
[](https://tcoupin.github.io/leaflet-paintpolygon)
**Turf packages are already included in dist js.**
```
L.control.paintPolygon().addTo(map)
```
```
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
}
}
```
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](https://tcoupin.github.io/leaflet-paintpolygon/examples/2_externalcontrol.html).
* `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](https://leafletjs.com/reference-1.3.0.html#geojson)