Geometry editing
Open GeoEditor to draw in Sketches, or choose Edit geometry on an editable layer to edit that layer in place. The Shape editor has two pages: Draw for creating shapes and Select for changing existing ones. Common tools have labelled icons; extra shapes, precision controls, and boundary operations expand on demand. Collapse the heading to keep more of the map visible.
Drawing
- Snapping starts with corners and edges in the current editing layer. Open Snapping options for midpoints, centres, crossings, right angles, and parallel guides. Choose the editing layer, visible local GeoJSON layers, or individual local layers as targets. A map marker and target label show the active snap. Hold Alt to temporarily bypass snapping and drawing locks. Tolerance is a screen distance from 1 to 100 CSS pixels, initially 18 pixels. Provider sessions query nearby candidates using the same tolerance, including when the map is rotated or pitched. Turning snapping off clears pending candidates.
- Live measurements show the latest segment, total length or perimeter, and polygon area. Distances use geodesic meters; area uses square meters and subtracts holes.
- Exact vertex accepts WGS84 longitude and latitude while drawing a line or polygon. Add by distance / bearing places the next vertex relative to the last committed vertex, with bearings measured clockwise from north. Exact entry bypasses snapping so the entered position is retained.
- Precision & tracing includes longitude, latitude, distance, and bearing locks. Distance and bearing use the last committed vertex; axis locks take precedence when combined. Follow an existing edge adds the intervening vertices of a continuous line or boundary between clicks, using the shorter arc of a ring. Disconnected or ambiguous paths are rejected.
- Finish drawing completes a line with at least two vertices or a polygon with at least three. Cancel drawing or Escape discards the unfinished draw. Backspace removes the last drawing point; Enter finishes. P starts an area, L starts a line, V selects, and S toggles snapping. Text fields keep their native clipboard and undo shortcuts.
- Ellipse takes opposite bounding-box corners. Regular polygon takes a center and radius point, with a configurable side count. Circle through 3 points completes on the third click. Polygons and circles use geodesic radii. These shapes are stored as ordinary polygons, not curved geometries.
Selected geometry
Select one feature to use the geometry operations. Rectangle selection selects features in the current editing set; Shift adds to the selection.
- Offset line replaces a line or multiline at a signed distance in meters. Positive is right of the line’s direction. It uses a local metric projection and is intended for local editing; geometries spanning more than 10 degrees, crossing the antimeridian, or reaching 85 degrees latitude are rejected. Distance accuracy decreases across larger extents within that limit.
- Add ring draws a hole inside the chosen polygon part. A hole cannot cross or touch the exterior, intersect itself, or overlap an existing hole. Delete ring removes the chosen interior ring. The exterior cannot be deleted.
- Add part draws a matching point, line, or polygon member. A single geometry becomes multipart. Delete part removes the chosen member while retaining at least one part.
- Redraw boundary works on a line, polygon exterior, or selected hole. It uses a replacement path meeting the original at two distinct locations. A path crossing it twice is trimmed to the crossings. Ambiguous paths are rejected.
Ring, part, reshape, and offset operations retain feature identity and attributes and participate in the editor’s undo/redo history. Drawn ring, part, and reshape guides do not become separate features. Layer edits still use the layer’s existing save/discard workflow.
Existing Z/M ordinates are retained by supported geometry operations and large geometry XY transforms. An operation that cannot preserve dimensions rejects the edit rather than silently dropping values.
Attribute table
Select rows, enable attribute editing, and focus a field to paste into it. A single clipboard value fills that field across the selection; a column of values must have exactly one value per selected row. Copying rows from this table keeps field headers and feature identifiers, so pasting back can identify the requested field. Arbitrary multi-column matrices are rejected. Clipboard access requires browser permission, and selected provider rows must be loaded in the table.
Delete selected features stages deletion until Save; Cancel restores the rows. Local GeoJSON edits use the document’s save path. Editable providers with transaction support commit deletions and attribute changes together, using feature revisions to reject stale edits. A failed map refresh retries the refresh without committing the same deletion twice.
Add feature supports nonspatial local GeoJSON tables and transaction-capable providers explicitly declaring no geometry types. Spatial layers still require drawing on the map. DuckDB table editing remains attribute-only.
Remaining QGIS differences
The editing scope is local. Nearby provider candidates support corners and edges; the extra snap modes and tracing use loaded geometry. Exact entry supports XY, with existing Z/M values preserved where supported; there is no Z/M capture or full CAD constraint solver. Tracing accepts 2D paths. Rectangle selection is scoped to the editor. Shape output uses polygons rather than true curves. Server editing and remote transactions are outside this work.