Lasso selection plugin for Leaflet
Supports all Leaflet vector layers:
- Marker
- CircleMarker
- Circle
- Polyline
- Polyline with multiple segments
- Rectangle
- Polygon
- Polygon with hole
- Polygon with multiple segments
- Polygon with multiple segments and holes
Selection modes:
- contain - entire shape must be in lasso polygon (default)
- intersect - any part of shape can be in lasso polygon
npm install leaflet-lasso
or
<script src="https://unpkg.com/leaflet-lasso@2.2.4/dist/leaflet-lasso.umd.min.js"></script>
import "leaflet-lasso";
For detailed API, please see exported TypeScript typings.
Use for custom activation.
interface LassoHandlerOptions {
polygon?: L.PolylineOptions,
intersect?: boolean;
}
const lasso = L.lasso(map, options);
yourCustomButton.addEventListener('click', () => {
lasso.enable();
});
Use for default control.
type LassoControlOptions = LassoHandlerOptions & L.ControlOptions;
L.control.lasso(options).addTo(map);
Listen for this event to receive matching Leaflet layers.
interface LassoHandlerFinishedEventData {
latLngs: L.LatLng[];
layers: L.Layer[];
}
map.on('lasso.finished', (event: LassoHandlerFinishedEventData) => {
console.log(event.layers);
});
Icon by @Falke-Design