Comments (4)
It is a little bit complicated but this should work:
function cutListener(e){
if(e.shape === 'Cut'){
L.polygon(map.pm.Draw.Cut._layer.getLatLngs()).addTo(map);
}
}
function removeCutListener(e){
if(e.btnName === 'cutPolygon') {
if (e.type === 'pm:buttonclick') {
if (map.pm.globalCutModeEnabled()) {
map.off('pm:actionclick pm:buttonclick', removeCutListener)
map.off('pm:drawend', cutListener)
}
} else if (e.type === 'pm:actionclick') {
if (e.text === 'Cancel') {
map.off('pm:actionclick pm:buttonclick', removeCutListener)
map.off('pm:drawend', cutListener)
}
}
}
}
map.on('pm:drawstart',(e)=>{
if(e.shape === 'Cut') {
map.on('pm:actionclick pm:buttonclick', removeCutListener)
map.once('pm:drawend', cutListener)
}
})
from leaflet-geoman.
Cool thank you so much :-) I was thinking about a solution, where I could listen to, and collect, on "pm:vertexadded" on the draw start working layer and then recreate the polygon based on this, but your solution seems more elegant and simple.
from leaflet-geoman.
A followup question :-) Would It be possible to turn the process around and draw a polygon, and then based on this polygon, call "cut" functionality on the existing layers with the latlngs of the newly drawn polygon?
from leaflet-geoman.
@rp-ft you can do following:
// on map setup initialize Cut drawing
map.pm.enableDraw('Cut');
map.pm.disableDraw();
map.on('pm:create', (e)=>{
if(e.shape === 'Polygon'){
// prevent Layer from be cutted
e.layer.pm.setOptions({allowCutting: false});
map.pm.Draw.Cut._layer.setLatLngs(e.layer.getLatLngs()[0]);
map.pm.Draw.Cut._finishShape();
// allow cutting of Layer again
e.layer.pm.setOptions({allowCutting: true});
}
})
from leaflet-geoman.
Related Issues (20)
- Edit Mode HOT 2
- Add multiple events to the same layer in leaflet geoman HOT 1
- merge two layers or more HOT 1
- How to prevent drawing of rectangles with zero area?
- Can't add text to labels when SetOptIn is true HOT 2
- Mobile and PWA: Drag Tool on a Marker opens the "Save as.." etc. dialogue for the graphic HOT 2
- A error in 2.16.0 HOT 3
- setLang works with "fr" but not "fr-FR"
- Add the ability to set Action tooltip text
- Disabling "removeLayerBelowMinVertexCount" prevents removal of holes in polygon
- L.PM is undefined when packaged with webpack HOT 2
- Mutliselect / box select for vertex / helper-markers in Edit Mode HOT 1
- Cursor style glitching when drawing polygons HOT 3
- Prevent Null Pointer When Layer Has Been Removed HOT 2
- Unminified version? HOT 1
- Wrong close tag in css HOT 1
- Shadow point when removing vertex from linestring HOT 2
- Point added with addVertexOn is "jumping" upon zooming in or out HOT 1
- Drag events not triggering for both layers when vertex are pinned HOT 1
- When there is a GeoJSON-drawn layer on the map, editing the layer causes the browser to stop working
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from leaflet-geoman.