Skip to content

User Guide

The ribbon

Tab Groups
Project New, Open, Save, Save As, About (backstage)
Map Navigate, Layer (Basemap, Add Data), Selection, Inquiry (Measure, Locate), Labeling
Insert New Map, Toolbox, Import Project, Bookmarks, Fields
Analysis Geoprocessing (History, Tools), tool gallery, Select By Attributes/Location
View Windows (Contents, Catalog, Geoprocessing, Symbology, History, Details), Graticule, Dark Mode
Edit Save, Undo/Redo, Create, Delete, Selection, Fields
Share Export Map (PNG), Export Features (GeoJSON/CSV), Save Project As
Feature Layer Visibility Range, Transparency, Symbology, Color, Outline, Zoom To Layer
Labeling Label, Field, Text Symbol (size, colour, bold, halo)
Data Definition Query, Attribute Table, Selection, Fields, Export

The last three form the contextual Feature Layer group, shown while a layer is selected in the Contents pane.

To give the map more room, collapse the ribbon to its tab row with the chevron at its right end, by double-clicking a tab, or with Ctrl+F1 (⌘F1 on macOS, where F1 may need the Fn key). Click a tab to peek at its commands while collapsed.

Data

Format Read Write
GeoJSON (.geojson, .json) Yes Yes
CSV (.csv, .txt) with longitude/latitude columns Yes Yes
Shapefile (.shp + .dbf) Yes No
GeoTIFF and cloud-optimised GeoTIFF (.tif, .tiff) Yes Yes
ASCII grid (.asc, with an optional .prj) Yes No
RustGIS project (.rgisx) Yes Yes

Vector coordinates are WGS 84 longitude/latitude and are displayed in Web Mercator. Rasters keep their own coordinate system (any EPSG code, such as UTM zones or national grids) and are reprojected on the fly as they draw.

Projections

The flat map is drawn in Web Mercator by default. View › Projection switches it to another projection, and clicking the coordinate system in the status bar opens the Coordinate System dialog, which also takes any projected EPSG code (such as 3035, 32633 for UTM zone 33N or 2056 for Switzerland):

Preset Kind
Equirectangular, Miller World, cylindrical
Mollweide, Lambert Cylindrical Equal Area, Equal Earth, Eckert IV World, equal-area
Robinson, Natural Earth, Winkel Tripel World, compromise
North / South Polar Stereographic Polar
Europe Equal Area (ETRS89 LAEA), USA Contiguous Albers Equal Area Regional, equal-area

Layers are projected on the fly. Each projection has an area of use: polar projections show their hemisphere poleward of 30°, regional ones their region, transverse Mercator (UTM) zones 30° either side of their meridian, and data outside it isn't drawn. Switching keeps the centre and scale, and the choice is saved with the map (map.projection from the command line). A raster already in the map's coordinate system draws without being reprojected. Robinson, Equal Earth, Natural Earth, Winkel Tripel and Eckert IV are computed by RustGIS itself on a sphere, so EPSG:8857 (Equal Earth) works too.

Globe

View › Globe shows the map as a 3D globe seen from space instead of the flat Web Mercator map, and back again. Drag to turn the globe, scroll to zoom, and use Full Extent to see the whole Earth. Every layer draws on the globe: vectors are clipped at the horizon and follow great circles, rasters are draped onto the sphere, and labels, selection, identify, measuring and editing work as on the flat map. The scale stays the same when you switch, and the choice is saved with each map in the project (map.projection from the command line).

Rasters

Add a GeoTIFF or an ASCII grid with Add Data, by dropping it on the window, or in the web app by picking it. An ASCII grid takes its coordinate system from a .prj file next to it that names an EPSG code; otherwise, and always in the web app, which only sees the one file, it must be in longitude/latitude degrees. Exporting a raster opened from an overview writes that overview. GeoTIFFs may be grey, RGB(A), palette or multiband, of any pixel type, tiled or striped, and compressed with Deflate, LZW, PackBits or JPEG. A raster too large to hold in memory (more than 120 million samples) opens from its largest overview that fits.

Selecting a raster layer in Contents shows the Raster Layer tab group:

Tab › Group Controls
Raster Layer › Visibility Range, Effects Scale range, transparency
Raster Layer › Rendering Symbology: Stretch, RGB, Classify, Unique Values, Colormap, Shaded Relief; Stretch Type: None, Minimum Maximum, Percent Clip, Standard Deviation, Histogram Equalize; DRA (stretch the pixels in view); Resampling (nearest or bilinear); Band Combination (natural colour, colour infrared, or any bands)
Raster Layer › Enhancement Brightness, contrast, gamma
Data Raster information (size, bands, statistics, coordinate system) and Export Raster (GeoTIFF)

Clicking a raster with the Explore tool shows its pixel values. Projects remember a raster's file path and reopen it; rasters added in the browser are stored inside the project.

Symbology

  • Single Symbol: one fill, outline and marker for every feature.
  • Unique Values: one colour per distinct value of a field.
  • Graduated Colors: classes of a numeric field by natural breaks (Jenks), equal interval or quantile.
  • Proportional Symbols: point size grows with a numeric field.

Labeling

Turn labels on per layer (Map › Labeling › Label, or the Labeling tab), then:

  • Visibility Range: draw labels only between two scales (Out Beyond / In Beyond), or between two viewing distances (Closest / Farthest). Clear Limits removes all four.
  • Placement: automatic (above points, centred on lines and polygons), centred, or one of eight positions around the feature.
  • Lock keeps the labelled features fixed while you pan and zoom; Pause stops drawing labels for faster navigation; View Unplaced draws the labels that didn't fit in red.
  • Convert turns a layer's labels into an annotation layer: one point per label, carrying its text in a TEXT field, which you can then edit, move or delete like any other features.

Clipboard and pop-ups

Copy (Ctrl+C) and Cut (Ctrl+X) take the selected features. Paste (Ctrl+V) adds them to the layer selected in Contents, matching fields by name; Paste Special adds them as a new layer. 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.

Pop-ups (Map › Navigate) choose what a click with Explore identifies: the topmost feature, every visible layer's feature (step through them with ‹ ›), only selectable layers, only the layer selected in Contents, or nothing.

Selection and queries

Select By Attributes and definition queries use SQL WHERE clauses:

pop_est > 100000000 AND continent = 'Asia'
name LIKE 'S%'
iso_a3 IN ('FRA', 'DEU', 'ITA')
gdp_md IS NULL
"OR" = 1          -- double quotes name a field, even a keyword

Geoprocessing tools

Tool Toolbox
Buffer Analysis › Proximity
Clip, Erase Analysis › Extract / Overlay
Dissolve Data Management › Generalization
Minimum Bounding Geometry, Feature To Point, Calculate Geometry Attributes Data Management › Features
Simplify Cartography › Generalization
Select Layer By Location / Attribute Data Management › Layers and Table Views
Summarize Within, Summary Statistics Analysis › Summarize / Statistics
Export Features Conversion

Tools honour the current selection: with features selected, only those are processed.

GeoLibre tools

The desktop app and the command line can also run the GeoLibre tool suite: over 1,000 tools from Whitebox and GeoLibre for terrain analysis (slope, aspect, hillshade, curvature), hydrology (fill depressions, flow direction and accumulation, watersheds), image processing, interpolation and vector work. They run on the map's layers and add their outputs as new layers.

The suite is an optional download, so RustGIS itself stays small: the GeoLibre runner, a single geolibre program (about 20 MB to download). In the Geoprocessing pane, click Install GeoLibre tools under GeoLibre tools: RustGIS downloads the latest runner for your platform from the geolibre-rust releases, checks it against its published SHA-256 checksum (which catches a corrupted download; the release itself is trusted as when you download it by hand) and installs it in its data folder (~/.local/share/rustgis/geolibre on Linux, ~/Library/Application Support/RustGIS/geolibre on macOS, %LOCALAPPDATA%\RustGIS\geolibre on Windows). From the command line, gp.installGeolibre does the same.

To install it yourself instead, download the archive for your platform (geolibre-<version>-<platform>.tar.gz, or .zip on Windows), unpack it anywhere, and click Locate… to pick the geolibre program; RustGIS remembers it.

RustGIS also finds the runner without asking when it is next to the RustGIS program (or in a geolibre folder beside it), on your PATH, or named by the RUSTGIS_GEOLIBRE environment variable (the command line uses these). The tools then appear under GeoLibre › Raster, Vector, Lidar, Hydrology, Terrain, Conversion in the Geoprocessing pane and the Catalog's toolboxes, and Find Tools searches them.

  • Raster inputs are passed as their own files; vector layers (or their selection) are written in the first raster input's coordinate system, or the UTM zone around the data, so distances and areas are in metres. Data spanning more than 40° of longitude stays in degrees.
  • Raster outputs are kept inside the project, so they save and reopen with it. Text and table reports appear in the tool's messages.
  • LiDAR and other inputs RustGIS doesn't open as layers take a file path, read like Add Data reads one. Outputs are written to a fresh scratch folder and loaded from there.
  • Each run is a separate geolibre process, so a tool that fails can't take RustGIS down.
  • From the command line: gp.run={"tool":"geolibre:slope","params":{"input":"dem"}}; gp.tools lists every tool's parameters, gp.geolibre shows the runner in use and gp.setGeolibre={"path":"…"} picks one.

In the web app, click Load GeoLibre tools in the Geoprocessing pane instead. RustGIS loads geolibre-rust's WebAssembly runner (the geolibre-wasm package, from jsDelivr, about 25 MB the first time, then from the browser's cache) and the tools run in the page, in an in-memory folder: nothing is uploaded. The web app remembers this and loads them again on your next visit. The runner's code comes from jsDelivr, pinned to one geolibre-wasm release, the same trust as installing that package. Tools that read files by path (LiDAR files, for instance) need the desktop app, since a web page has no file system.

In the desktop app and on the command line, RustGIS waits while a tool runs, so a long run on a large raster or point cloud keeps the window busy until it finishes. In the web app the run is started in the background and the result is added when it ends, but the tool itself runs in the page, so the page is busy while it computes.

Keyboard shortcuts

Keys Action
Ctrl+K Command search
Ctrl+N / Ctrl+O / Ctrl+S New / Open / Save project
Ctrl+Z / Ctrl+Y Undo / Redo
Ctrl+T Attribute table
Home Full extent
Esc Back to Explore; cancel a sketch
Del Delete selected features
Ctrl+C / Ctrl+X / Ctrl+V Copy / Cut / Paste features