# Leaflet-Geoman > Leaflet-Geoman is a Leaflet plugin for creating and editing geometry layers. It supports drawing, editing, dragging, cutting, rotating, splitting, scaling, measuring, snapping, and pinning markers, polygons, polylines, circles, rectangles, and more. Source: https://geoman.io/docs/leaflet ## Getting Started - [Free Version](https://geoman.io/docs/leaflet/getting-started/free-version): Install and set up Leaflet-Geoman Free via npm or CDN. Covers initialization, layer exclusion with pmIgnore, and Opt-In mode. - [Pro Version ⭐](https://geoman.io/docs/leaflet/getting-started/pro-version): Install Leaflet-Geoman Pro via npm with license key authentication. Covers registry setup, initialization, and Opt-In mode. ## Toolbar - [Toolbar](https://geoman.io/docs/leaflet/toolbar): Add and configure the Leaflet-Geoman toolbar with drawing, editing, and custom control buttons. Covers all toolbar options and events. ## Modes - [Modes](https://geoman.io/docs/leaflet/modes): Overview of Leaflet-Geoman editing modes. Only one mode can be active at a time. Enable modes programmatically or via the toolbar. - [Copy Layer Mode ⭐](https://geoman.io/docs/leaflet/modes/copy-mode): Copy existing layers on the map. Pro feature to duplicate geometry layers with their properties preserved. - [Custom Shapes Mode ⭐](https://geoman.io/docs/leaflet/modes/customshapes-mode): Draw predefined custom shapes like stars and other complex geometries. Pro feature. - [Cut Mode](https://geoman.io/docs/leaflet/modes/cut-mode): Cut holes in polygons and lines by drawing a cutting shape. Supports circle-shaped cutting. Covers cut mode methods, options, and events. - [Difference Mode ⭐](https://geoman.io/docs/leaflet/modes/difference-mode): Subtract one polygon from another to create difference geometry. Pro feature with methods and events. - [Drag Mode](https://geoman.io/docs/leaflet/modes/drag-mode): Drag layers across the map. Enable globally or per-layer with sync options for coordinated layer movement. - [Draw Mode](https://geoman.io/docs/leaflet/modes/draw-mode): Draw markers, polygons, polylines, circles, rectangles, and text on the map. Covers all draw options, snapping, events, and styling. - [Edit Mode](https://geoman.io/docs/leaflet/modes/edit-mode): Edit existing layers by moving vertices, adding or removing points, and configuring snapping. Covers global and per-layer edit options and events. - [Freehand Drawing Mode ⭐](https://geoman.io/docs/leaflet/modes/freehand-mode): Draw freehand polylines and polygons with smooth mouse or touch input. Pro feature. - [Lasso Select Mode ⭐](https://geoman.io/docs/leaflet/modes/lasso-select-mode): Select multiple layers at once by drawing a freehand lasso selection area. Pro feature. - [Line Simplification Mode ⭐](https://geoman.io/docs/leaflet/modes/linesimplification-mode): Simplify polyline and polygon geometry by reducing vertex count. Pro feature with configurable tolerance. - [Removal Mode](https://geoman.io/docs/leaflet/modes/removal-mode): Remove layers from the map by clicking them. Enable globally with removal events and undo support. - [Rotation Mode](https://geoman.io/docs/leaflet/modes/rotation-mode): Rotate layers on the map. Enable globally or per-layer with configurable rotation angle and events. - [Scale Mode ⭐](https://geoman.io/docs/leaflet/modes/scale-mode): Scale layers with center or corner origin. Supports uniform and non-uniform scaling with keyboard modifiers. Pro feature. - [Split Mode ⭐](https://geoman.io/docs/leaflet/modes/split-mode): Split polylines and polygons by drawing a cutting line. Pro feature with split methods and events. - [Union Mode ⭐](https://geoman.io/docs/leaflet/modes/union-mode): Merge two polygon or multipolygon layers into one unified shape. Pro feature with union methods and events. ## Options - [Options](https://geoman.io/docs/leaflet/options): Global options for Leaflet-Geoman including snapping order, layer groups, panes, and keyboard shortcuts. - [AutoTracing ⭐](https://geoman.io/docs/leaflet/options/auto-tracing): Automatically trace existing layer boundaries while drawing or cutting. Pro feature with configurable distance. - [Geofencing ⭐](https://geoman.io/docs/leaflet/options/geofencing): Enforce spatial constraints: prevent layer intersection and require containment within boundaries. Pro feature. - [Measurement ⭐](https://geoman.io/docs/leaflet/options/measurement): Display real-time measurements (area, length, radius) while drawing and editing layers. Pro feature with metric and imperial units. - [Performance](https://geoman.io/docs/leaflet/options/performance): Optimize Leaflet-Geoman performance for maps with many layers. Includes marker limiting and viewport-based rendering. - [Pinning ⭐](https://geoman.io/docs/leaflet/options/pinning): Pin shared vertices together so editing one vertex moves all connected vertices. Pro feature. - [Snap Guides ⭐](https://geoman.io/docs/leaflet/options/snap-guides): Display alignment guides when moving vertices to help align with other features. Pro feature. - [Snapping](https://geoman.io/docs/leaflet/options/snapping): Configure vertex snapping for precision drawing and editing. Enable snapping globally, per-layer, or via toolbar button. ## Customization - [Customize Language](https://geoman.io/docs/leaflet/customize/language): Change the language of Leaflet-Geoman UI text. Supports 27 languages with custom translation override capability. - [Customize Style](https://geoman.io/docs/leaflet/customize/style): Customize the visual style of drawn layers using Leaflet path options. Set styles globally or per drawing mode. - [Toolbar](https://geoman.io/docs/leaflet/customize/toolbar): Customize toolbar layout, button order, block positions, and create custom controls with configurable actions. ## Other Features - [Keyboard](https://geoman.io/docs/leaflet/keyboard): Keyboard event handling in Leaflet-Geoman. Access key states, listen for key events, and configure keyboard shortcuts. - [Layer Groups](https://geoman.io/docs/leaflet/layer-groups): Work with FeatureGroup and GeoJSON LayerGroups in Leaflet-Geoman. Methods for enabling, disabling, and managing grouped layers. - [Lazy Loading](https://geoman.io/docs/leaflet/lazy-loading): Defer loading Leaflet-Geoman for performance. Use L.PM.reInitLayer to attach Geoman to an already-initialized map. - [Screenshots](https://geoman.io/docs/leaflet/screenshots): Capture map screenshots with the Leaflet-Geoman Pro Screenshot plugin. Covers installation, caption options, and screenshot events. - [Text Layer](https://geoman.io/docs/leaflet/text-layer): Create, edit, and style text layers on the map. Covers text drawing options, programmatic creation, and text editing events. - [Utils](https://geoman.io/docs/leaflet/utils): Utility methods for coordinate calculations, circle-to-polygon conversion, layer discovery, and measurement functions. ## Optional - [Leaflet-Geoman Free](https://geoman.io/docs/leaflet/changelog/free): Release history and changelog for Leaflet-Geoman Free version. - [Leaflet-Geoman Pro ⭐](https://geoman.io/docs/leaflet/changelog/pro): Release history and changelog for Leaflet-Geoman Pro version.