Data¶
Formats¶
Every format, with how to add it and its limits, is listed on Supported Data Formats.
| Format | Read | Write |
|---|---|---|
GeoJSON (.geojson, .json) |
Yes | Yes |
CSV (.csv, .txt) with longitude/latitude columns |
Yes | Yes |
Shapefile (.shp + .dbf) |
Yes (desktop) | No |
GeoPackage (.gpkg, every feature table) |
Yes (desktop) | No |
GeoParquet (.parquet, .geoparquet, WKB geometry) |
Yes (zstd-compressed files on the desktop only) | No |
FlatGeobuf (.fgb) |
Yes | Yes (share.exportLayer) |
Through GDAL: KML/KMZ, GPX, GML, DXF, File Geodatabase (.gdb folder), MapInfo, OpenStreetMap… |
Yes (desktop, when GDAL is installed) | No |
| KML, GPX, CSV with WKT geometry | No | Yes (Analysis › Workflows › Data Interop) |
GeoTIFF and cloud-optimised GeoTIFF (.tif, .tiff) |
Yes | Yes |
ASCII grid (.asc, with an optional .prj) |
Yes | No |
| Web tiles: XYZ/TMS/WMS rasters, Mapbox Vector Tiles, MapLibre styles, PMTiles archives | Yes | Yes (Imagery › Create Hosted Imagery) |
RustGIS project (.rgis; older .rgisx files open too) |
Yes | Yes |
Add data with Map › Add Data, by dropping files on the window, or by passing them on the
command line (rustgis places.geojson). A CSV without coordinate columns, or a layer without
geometry, opens as a standalone table, listed under the map in Contents. Map › Add Data ›
Graphics Layer adds a layer for drawn graphics, and Insert ›
Layer Templates adds empty layers with ready-made schemas to draw into.
Vector coordinates are WGS 84 longitude/latitude and are displayed in Web Mercator. GeoPackage, GeoParquet and FlatGeobuf files in another coordinate system (any EPSG code) are converted as they are read. 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.
Formats through GDAL¶
When GDAL is installed (its ogr2ogr and ogrinfo programs on the PATH,
or the folder holding them in RUSTGIS_GDAL_BIN; GDAL 3.7 or later), the desktop app also opens
the vector formats GDAL reads: KML and KMZ, GPX, GML, DXF, File Geodatabases, MapInfo, OpenStreetMap
and more. RustGIS doesn't link to GDAL: each layer is converted once, by ogr2ogr, into a
FlatGeobuf with a spatial index in WGS 84 (GDAL reprojects it), kept in the cache folder
(~/.cache/rustgis/gdal on Linux, ~/Library/Caches/RustGIS/gdal on macOS,
%LOCALAPPDATA%\RustGIS\cache\gdal on Windows, or RUSTGIS_GDAL_CACHE). Adding the file again
reuses the conversion until the file changes, and large layers stream like any large FlatGeobuf
(below). Every layer of the file is added; a layer mixing geometry types, as KML often does, is
added as one layer per type. Projects remember the original file and convert it again if the
cached copy is gone.
Large files¶
GeoPackage, GeoParquet and FlatGeobuf files with more than 100,000 features are read in place
rather than loaded whole, so files far larger than memory open in a moment. The layer reads the
features in view, using the file's own spatial index (the GeoPackage R-tree, the FlatGeobuf
packed R-tree, GeoParquet row-group bounding boxes), in the background as the map moves. When a
view holds more than 250,000 features (100,000 in the web app), the layer draws an evenly spread
sample of them and its tooltip in Contents says so: zoom in to see them all. Smaller files load
whole; layer.addData with "stream": true or false overrides the choice.
A streamed layer works like any other for symbology, labels, pop-ups, selection and the
attribute table (which lists the features read for the view). Geoprocessing tools read the whole
file. Edits are refused, since the features are read again as the view moves: right-click the
layer in Contents and choose Load All Features (layer.loadAll) to load it into memory and
edit it. Projects save the layer's file path, not its features, and read the file again when they
open; a browser upload is kept in the project.
| File | Features | A view read |
|---|---|---|
| GeoParquet, 0.1° grid (50 MB) | 1.6 million polygons | 183,000 in 0.15 s |
| FlatGeobuf, the same grid (335 MB) | 1.6 million polygons | 183,000 in 0.11 s |
| GeoPackage, the same grid (344 MB) | 1.6 million polygons | 183,000 in 0.18 s |
| GeoParquet, global grid (190 MB) | 6.5 million polygons | a sample of 136,000 in 0.27 s |
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 regular or cloud-optimised: grey, RGB(A), palette (coloured by the file's colour
table, as land cover such as the NLCD is) or multiband, of any pixel type, tiled or striped, and
compressed with Deflate, LZW, PackBits or JPEG. The coordinate system is an EPSG code, or the
file's own projection described in its GeoKeys (Albers, Lambert conformal conic, transverse
Mercator, Mercator, Lambert azimuthal, stereographic, equirectangular and others), which an
exported GeoTIFF keeps. A raster too large to hold in memory (more than 120 million samples, 32
million in the web app) opens from its largest overview that fits; one without overviews opens as
an overview made as it is read, a strip or tile at a time (every second, fourth… pixel each way),
so reading it takes as long as decoding the whole file once.
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.
Project items¶
RustGIS saves pieces of a project as files you can share and reuse:
| Item | Extension | Made with | Opened with |
|---|---|---|---|
| Map file (a map with its data) | .rgismap |
Share › Save As › Map File | Insert › Import |
| Layer file (a layer with its symbology) | .rgislyr |
Share › Save As › Layer File | Add Data |
| Styles (saved symbology) | .rgisstyle |
Insert › Styles › New Style, then Share › Save As › Style Items | Insert › Styles › Add Style File |
| Project template (the setup without features) | .rgistemplate |
Insert › Templates, or Share › Save As | Insert › Templates › Open Custom Template |
| Project package (everything, rasters included) | .rgispkg |
Share › Package › Project | Project › Open |
| Map package / mobile map package | .rgismpk |
Share › Package › Map or Mobile Map | Insert › Import |
| Results package (geoprocessing history and outputs) | .rgisgpk |
Share › Package › Results | any zip tool |
| Task (guided command steps) | .rgistask |
Insert › Task, Share › Save As › Task Item | Insert › Task › Import Task |
| Layout | .rgislayout |
Layout › Save Layout File | Insert › New Layout › Import Layout |
Packages are zip files. A mobile map package keeps only the visible layers and simplifies their geometry, for phones and tablets. Styles can also be imported from the layers of a layer file, map file or project. Insert › Layer Templates adds empty layers with ready-made schemas (places, routes, areas, observations…) to draw into. Add Folder connects a folder to the Catalog, which also lists the project's layouts, styles and tasks. A task's steps each run a command; New Task From History turns the geoprocessing history into a task you can replay.