社交平台热议 · 当前第 25 · 1 个来源
10月30日 07:16 检查 · 分数为各平台在最后检查时显示的数值。我们不复制帖子正文和评论,原帖删除后此处也会移除。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A fast, free and open-source GIS in pure Rust.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗rustgis-cli, chain it in notebooks and models, use completion in the Script pane, or ask the
AI Assistant to run it for you.Every screenshot is RustGIS itself, rendered offscreen by cargo run -p rustgis-ui-egui --example ui_shot.
| Area | Highlights |
|---|---|
| Data | GeoJSON, CSV/TSV with x/y columns in any coordinate system or WKT geometry, Excel and OpenDocument spreadsheets, GeoRSS, LandXML, encoded polylines, Shapefile (zipped too, in the browser as well), GeoPackage, GeoParquet, FlatGeobuf, KML/KMZ (with styles), GPX, GML, MapInfo MIF/MID, OpenStreetMap PBF, TopoJSON, AutoCAD DXF, LiDAR point clouds (LAS, LAZ, COPC) and geotagged photos (large files are read in place), files by their web address, every vector format GDAL reads when it is installed, Esri File Geodatabases without GDAL (desktop), PostGIS, MySQL, MariaDB and SQL Server tables read live (desktop), and SQL queries and DuckDB databases through DuckDB Spatial when DuckDB is installed; PMTiles archives (web or file) and MBTiles files; GeoJSON, CSV, GeoPackage, GeoParquet, Shapefile, FlatGeobuf, KML/KMZ, GPX and WKT out; standalone tables; reusable connections; supported QGIS projects and layer styles; layer and map files, styles, templates and packages |
| Rasters | GeoTIFF and cloud-optimised GeoTIFF (any pixel type, tiled or striped, compressed), ASCII grids, Zarr 2 and 3 stores (a variable at a time step, by folder or web address), and JPEG 2000, NetCDF, HDF, ERDAS Imagine and the other rasters GDAL reads when it is installed (desktop); reprojection from any EPSG code; Stretch, RGB, Classify, Unique Values, Colormap and Shaded Relief; DRA, band combinations, brightness/contrast/gamma; raster functions, indices, change detection, classification, georeferencing; cloud-optimised GeoTIFF export; data cubes, point time-series charts, temporal summaries and trends |
| Maps | Multiple maps and layouts per project, renamed and duplicated from the Browser pane; tilt, rotation, terrain and a 3D globe; maps of the Moon, Mars and other celestial bodies; Web Mercator or any projection (Equal Earth, Robinson, Winkel Tripel, polar and regional presets, or an EPSG code); bookmarks, extent history, coordinate navigation; five offline basemaps, with borders in two worldviews |
| Web services | WMS, WMTS, WFS, OGC API Features and ArcGIS REST (FeatureServer, MapServer, ImageServer, VectorTileServer) from their capabilities |
| Web tiles | XYZ/TMS/WMS raster tiles, Mapbox Vector Tiles and MapLibre styles (sprites, patterns, expressions), cached and fetched in the background |
| Cartography | Single symbol, unique values, graduated colours, proportional symbols; label classes with SQL queries, straight and curved line placement, installed font families, scale ranges and annotation; stacked and dashed line strokes, symbol levels, reference scales and polygons without fill; masking, display filters, aggregation bins, 2.5D extrusion; graphics and dynamic text |
| Editing | Create, move, rotate, scale, merge, split and explode features; snapping, templates, elevation, traverse, topology rules; domains, subtypes, attribute rules, relationships, archiving; undo for everything |
| Analysis | Selection by attributes (SQL) and location; Buffer, Near, Clip, Erase, Split, Intersect, Identity, Union, Symmetrical Difference, Update, Dissolve, Summarize Within, Summary Statistics, Pivot Table, Spatial Join, Zonal Statistics, A5 grids and a geometry calculator; viewshed, line of sight, IDW, ordinary kriging, shortest path, suitability modelling; ModelBuilder on a node canvas and scripts with command, parameter and value completion; 1,000+ GeoLibre and Whitebox raster, vector, LiDAR, hydrology and terrain tools |
| Imagery | Ortho and reality mapping, pixel classification (k-means, minimum distance, a trainable neural network), mensuration, hosted imagery tiles |
| Layouts and reports | Page layouts with map frames, legends, scale bars, grids and map series; publication sheets and figures in one command, format panes, guides, snapping and element locks; reports with groups, statistics, charts and subreports; presentations (HTML slideshow, PDF); notebooks (Jupyter in and out) |
| Sharing | PNG export at any DPI; PDF; web map pages, OGC API Features collections, MapLibre styles, glTF scenes, locators; project, map and mobile map packages; offline areas with sync |
| AI Assistant | Ask about your data or tell the map what to do in plain language, with Anthropic, OpenAI (a key, or your ChatGPT plan by signing in), Gemini, OpenRouter, Ollama or any OpenAI-compatible model; also rustgis-cli ask, and an MCP server (rustgis-cli mcp) for Claude Code, Cursor, VS Code and other agents |
| Plugins | Sandboxed WebAssembly plugins add commands, tools and ribbon tabs; install them from plugins.rustgis.app on the desktop, command line and web |
| Interface | Layers, Browser and Data Sources panes as tabs, command search (Ctrl+K), keyboard shortcuts, dark mode, a customizable ribbon and Quick Access Toolbar, linked side-by-side maps, 19 languages |
The user guide covers each area in detail, Comparison sets RustGIS beside GeoLibre, QGIS and ArcGIS, and ROADMAP.md lists what's next.
winget install OpenGeos.RustGIS,
brew install --cask opengeos/rustgis/rustgis, yay -S rustgis-bin (AUR), or
sudo dnf copr enable giswqs/rustgis && sudo dnf install rustgis (Fedora).cargo run --release -p rustgis (Rust 1.90 or later).cargo run --release -p rustgis # the desktop app with the World Atlas sample
cargo run --release -p rustgis -- data.geojson # open data (or a .rgis project)
Command line: every ribbon action is a command with an id.
rustgis-cli commands # all command ids and parameters
rustgis-cli render countries.geojson map.png --basemap ocean
rustgis-cli run --sample \
--cmd 'gp.run={"tool":"countPoints","params":{"polygons":"Countries","points":"Cities"}}' \
--cmd 'layer.symbology={"layer":"Countries_Summarize","type":"graduated","field":"point_count"}' \
--cmd 'share.exportMap={"path":"out.png","dpi":192}' --save atlas.rgis
rustgis-cli ask --sample "Which 5 countries have the largest GDP?"
claude mcp add rustgis -- rustgis-cli mcp --sample # RustGIS as an MCP server for AI agents
See Command Line for more.
Python: the same engine and commands in-process (pip install rustgis), and the app itself in a
Jupyter notebook.
import rustgis
s = rustgis.Session(sample=True)
s.run("gp.run", tool="buffer", params={"input": "Cities", "distance": 100})
s.to_png("map.png")
gdf = s.layer("Cities_Buffer").to_geopandas()
See Python and the getting-started notebook (open in Colab).
Layered crates, each depending only on the ones below it:
| Layer | Crate | Job |
|---|---|---|
| L0 | rustgis-geom | coordinates, extents, Web Mercator, geodesic distance/area, scale |
| L1 | rustgis-data | features and typed attributes; GeoJSON, CSV, Shapefile, KML, GPX and more; GeoPackage, GeoParquet, FlatGeobuf, LiDAR, PostGIS and MySQL providers; GDAL formats and DuckDB queries through their programs; SQL where clauses; rasters (GeoTIFF, ASCII grid, Zarr) and their coordinate systems |
| L2 | rustgis-map, rustgis-analysis | layers, symbology, labeling, camera, basemaps; geoprocessing (on geo) |
| L2 | rustgis-tiles | web map tiles: XYZ/TMS/WMS, Mapbox Vector Tiles, PMTiles and MBTiles archives, MapLibre styles, the tile cache |
| L3 | rustgis-render | tiny-skia renderer, label placement, PNG export, fonts |
| L3 | rustgis-plugins | sandboxed WebAssembly plugins and the plugin registry |
| L3 | rustgis-geolibre | the GeoLibre tool suite as geoprocessing tools |
| L4 | rustgis-engine | session, undo, command registry, sample project |
| L5 | rustgis-assistant | the AI Assistant: a chat agent that acts through commands |
| L6 | rustgis-ui-egui | the ribbon front end (swappable) |
| apps | rustgis, rustgis-cli, rustgis-web, rustgis-python | desktop, command line, browser (WebAssembly), the rustgis Python package |
cargo xtask ci runs formatting, clippy, the tests and the layering check. Contributor and
agent notes: AGENTS.md.
RustGIS is free and open source, and stays that way. If it is useful to you or your team, sponsorship is the most direct way to keep development, hosting and cross-platform distribution going.
See the Become a Sponsor page for what sponsorship supports and for other, free ways to help.
If you use RustGIS in your work, please cite it. RustGIS is archived on Zenodo, which mints a DOI for every release. The concept DOI below always resolves to the latest version.
Wu, Q., Rincón Albarracín, J. G., Filho, E., Hofbauer, D., Fitzgerald, M., & Strebel, D. (2026). RustGIS: A fast, free and open-source GIS in pure Rust for mapping, analyzing and sharing geospatial data. Zenodo. https://doi.org/10.5281/zenodo.23633281
You can also use GitHub's "Cite this repository" button (which reads CITATION.cff) to copy a ready-made APA or BibTeX entry. See the How to Cite page for more formats.
RustGIS builds on the work of many projects and their authors: QGIS, ArcGIS Pro and GDAL, the GIS it is measured against; MapLibre and PROJ; the GeoLibre tool suite, after John Lindsay's WhiteboxTools; OpenFreeMap for vector basemaps; Natural Earth, OpenStreetMap, Overture Maps and the EPSG dataset; and the Rust crates it is made of, among them egui, wgpu, tiny-skia, geo, proj4rs, tiff, Apache Arrow and Parquet, rusqlite and wasmi. See the acknowledgements for the full list, and ATTRIBUTION.md for every asset's source and licence.
RustGIS is primarily built with Claude Opus 5.5, an AI model by Anthropic, working under human direction and review. Its results are tested, but check them for your own use, and please report anything that looks wrong.
Licensed under the Apache License 2.0. Sample data from Natural Earth (public domain).