Comments (2)
import React, { useEffect } from 'react';
import L from 'leaflet';
import 'leaflet/dist/leaflet.css';
import '@geoman-io/leaflet-geoman-free/dist/leaflet-geoman.css';
import '@geoman-io/leaflet-geoman-free';
const LeafletMapComponent = () => {
useEffect(() => {
// Create a Leaflet map
const map = L.map('map').setView([24.774265, 46.738586], 6);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
// Enable drawing and editing with leaflet-geoman
map.pm.addControls({
position: 'topleft',
allowSelfIntersectionEdit: true,
syncLayersOnDrag: true,
drawCircle: false,
rotateMode: false,
showControls: ['all'],
editMode: true,
});
// Set up a flag to check if an edit has occurred
let isEditOccurred = false;
// Listen for the pm:edit event to capture edits
map.on('pm:edit', (event) => {
console.log('Edited Layer GeoJSON:', event);
});
// Listen for the pm:create event to capture creations
map.on('pm:create', (event) => {
console.log('Drawn Data:', event);
});
// Check for edits after a timeout
const checkEdits = () => {
if (isEditOccurred) {
// Get all layers on the map (including edited ones)
const allLayers = map.pm.getGeomanDrawLayers();
// Log GeoJSON data of edited layers
const editedLayersGeoJSON = allLayers.map(layer => layer.toGeoJSON());
console.log('Edited Layers GeoJSON:', editedLayersGeoJSON);
}
};
// Check for edits after a timeout of 1 second
setTimeout(checkEdits, 1000);
// Cleanup on component unmount
return () => {
map.remove();
};
}, []);
return <div id="map" style={{ width: '600px', height: '600px' }} />;
};
export default LeafletMapComponent;
from leaflet-geoman.
You need to add the event listener to the layer instead of to the map:
layer.on("pm:edit", (e) => {
console.log(e);
});
from leaflet-geoman.
Related Issues (20)
- Feature proposal: Additional custom SnapList 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
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.