Skip to content

Editing

Creating features

Edit › Create draws new points, lines and polygons into the layer selected in Layers: click once for a point, or click each vertex and double-click to finish a line or polygon (Esc cancels). Delete (Del) removes the selected features across the map's layers. Edit attributes in the attribute table (Ctrl+T): double-click a cell to change it. Data › Data Design (and Data › Fields) adds and deletes fields and calculates a field from an expression; Calculate Geometry (in the attribute table's toolbar) fills a new or existing numeric field with each feature's area, perimeter, length or X/Y coordinate, in the units you choose, for all features or the selected ones. Length and perimeter include feet and miles; area includes square feet (ft2), acres (ac) and square miles (mi2). Every edit is one undo step.

Undo (Ctrl+Z) and Redo (Ctrl+Y or Ctrl+Shift+Z) restore project changes, not just feature edits; use Cmd instead of Ctrl on macOS. While typing in a text field, those shortcuts undo or redo the typing instead. Saving keeps the undo history; opening or creating a project clears it. Undo does not reverse files already written by an export.

Modifying features

Edit Vertices on Lake Victoria: square vertex handles and round midpoint handles around the selected lake
Edit Vertices: drag a square handle to move a vertex, a round one to add a vertex.

The Edit tab's Edit button turns feature editing on or off for the map; with it off, feature creation, geometry changes and attribute edits are disabled. The Editing pane (Settings, Templates, Status, Modify) holds the rest. Its Distance units selector sets the units used for Move and constant elevation. The choice is remembered independently of the live map's measurement units. The entered numbers are interpreted in the selected units when you click Move, Constant or Apply elevation. The current elevation stays in effect while you edit the value or choose units; click Apply elevation to apply the new inputs.

  • Modify: move the selected features by distances east and north, rotate them, scale them, merge them (polygons are unioned), explode multipart features, split a line where you click, and flip line direction. A single point turns and scales on itself, so Rotate and Scale leave points (text graphics included) as they are: with only points selected they change nothing, say so, and add no undo step. Edit › Tools lists every editing tool.
  • Edit Vertices (Edit › Features): reshape the selected features on the map. Their vertices show as square handles and each edge has a round midpoint handle. Drag a vertex to move it; drag a midpoint, or click an edge, to insert a vertex; click a vertex and press Del to remove it (a line keeps at least two vertices, a polygon ring three). Clicking elsewhere selects the feature there (Shift adds it). Multipart features and polygon holes work the same way, dragged vertices snap when snapping is on, and each move, insertion or deletion is one undo step. Esc finishes. From scripts and the command line, edit.vertex does the same to one vertex and edit.setGeometry (Set Geometry) replaces a feature's whole shape.
  • Feature templates: named default values for new features, made from a selected feature; the Create tool uses the chosen template.
  • Snapping (Edit › Snapping): new and dragged vertices snap to nearby vertices, edges and line ends of visible feature layers at the current scale (magenta marker; graphics and rasters are not targets). Vertices and ends take priority over edges within the tolerance. Snapping starts off; its vertex, edge and end options start on. The tolerance is how near, in screen pixels, a vertex must come to snap (10 by default, 1 to 100): edit.snapping={"on": true, "tolerancePx": 12, "edge": false} (without "on" it toggles snapping, even when other options are supplied). edit.snap={"lon":12.5,"lat":41.9} queries the current snap target without editing a feature.
  • Settings: Show Vertices marks the vertices of the selected features even when Edit Vertices isn't on (edit.settings={"showVertices": true}).
  • Elevation: new features get a z attribute, constant or sampled from a raster surface at the feature's label point; this is not a change to its geometry's coordinates.
  • Ground to grid: a scale factor and rotation applied to entered distances and directions (Move, and edit.traverse, which draws a line or polygon from distances and bearings).
  • Topology: rules (must not overlap, must not have gaps, must not self-intersect, must not have dangles, must be covered by); Validate lists the errors, and clicking one zooms to it.
  • Status: features added, changed and deleted per layer since the last save.

Distance units in commands

edit.move, edit.traverse and constant edit.elevation accept "units": "Feet", "Meters", "Kilometers" or "Miles" (case insensitive). Omitting units keeps the existing metre default. All traverse legs use the command's units. Conversion to metres happens before ground-to-grid corrections and distance limits; stored elevation stays in metres. Feet mean international feet (0.3048 m), independently of the source CRS's units.

For example, edit.move={"dx":500,"dy":0,"units":"Feet"} moves selected features 152.4 metres east.

Data design

The Data tab's Data Design pane keeps attributes valid, on every edit (creating, pasting, attribute edits, Calculate Field):

  • Domains: coded values (code=description) or a numeric range for a field.
  • Subtypes: an integer field's codes, each with a name and default values for new features; the layer is symbolized by subtype.
  • Attribute rules: calculations (a field set from an expression on every insert and update) and constraints (a SQL condition every feature must meet).
  • Contingent values: the combinations of values allowed across fields.
  • Archiving: keeps every edit with its time; restore the layer as it was minutes ago.
  • Relationships: link two layers by key fields; Related Data selects the rows related to the selection.

Clipboard and pop-ups

Copy (Ctrl+C) and Cut (Ctrl+X) take selected features from one layer: the active layer if it has a selection, otherwise the first layer with selected features. Paste (Ctrl+V) adds them to the layer selected in Layers, matching fields by name and converting values to the destination field types; unmatched fields stay empty. Geometry types must match. Paste Special adds them as a new layer instead. Copied features also go on the system clipboard as GeoJSON, so they can be pasted into another RustGIS window or a text editor, and GeoJSON copied elsewhere pastes into RustGIS. Copy Path copies the selected layer's data source path.

Whole-layer copying is separate: use Copy Layer or Copy Group and Paste Layer in the Layers pane's context menus to preserve symbology and other layer settings, including when moving layers between maps.

Pop-ups (Home › Navigate) choose which layers a click with Explore identifies: the topmost layer under the click, every visible layer, only selectable layers, only the layer selected in Layers, or nothing. The pop-up lists every feature under the click in those layers, overlapping ones included (up to 100): step through them with ‹ ›. The feature shown is the one selected. The magnifier in the pop-up's header zooms to it.

The topmost and visible modes also identify the features of vector tile layers under the click: PMTiles and MBTiles archives and vector tiles added as data (not catalog basemaps or MapLibre styles), beneath the map's own layers. Each shows its tile layer and source layer (firenze › buildings) and its attributes; tile features can't be selected or zoomed to.