A fast, open-source GIS tool for urban planning, spatial analysis, and geospatial data visualization. This application allows users to select areas, fetch data from OpenStreetMap (Overpass Turbo), and analyze geographic data with a focus on urban development and sustainability. It utilises LLM chatbots to help the user analyse their workspace.
Screencast.From.2025-07-29.11-55-13.mp4
To use the program in its current state:
- Edit
src/workspace/ui.rs
and replace"!!! YOUR TOKEN HERE !!!"
with your OpenRouter API key from openrouter.ai. This will change very soon to just getting prompted in the app to input your token :) - Select the Selection Tool (second icon from the left).
- Use it to select an area on the map.
- On the left side, choose the type of Overpass request you want to perform from the dropdown menu.
- At the top, select the Workspace.
- Note: Loading may take a few seconds depending on the size of the response.
From here you can either Analyse using llm For this simply ask what you want the llm to in the chat box on the right. Do note that it is containerised and will only be able to access data selected for the workspace. Change color
- Note: Loading may take a few seconds depending on the size of the response.
- Once the data is loaded, switch back to the Cursor Tool (which also acts as the info tool).
- Click on a house or other element.
- You can then change its color based on its properties.
- Move around and zoom into maps seamlessly.
- Select an area using circle or polygon tools.
- Center the selection on the screen for easy analysis.
- Interactive chat interface for geospatial queries
- Natural language commands for spatial analysis (population dencity, suitabilty of new houses, etc.)
- Automated feature summarization and insights
- Context-aware responses based on current map selection
- Save and load workspaces with selected areas and layers.
- Persistent workspace state and configuration.
-
Rust toolchain (incl. Cargo)
- Install via https://rustup.rs/
-
Click on your Linux distribution to see the required dependencies:
Fedora / RHEL / CentOS (dnf)
sudo dnf install alsa-lib-devel libudev-devel fontconfig-devel protobuf-compiler
Ubuntu / Debian (apt)
sudo apt install libasound2-dev libudev-dev libfontconfig1-dev protobuf-compiler
Arch Linux / Manjaro (pacman)
sudo pacman -S alsa-lib libudev fontconfig protobuf
Alpine Linux (apk)
sudo apk add alsa-lib-dev eudev-dev fontconfig-dev protobuf-dev protobuf
git clone https://github.com/SO9010/map-rs.git
cd map-rs
cargo build # or 'cargo run', to run the app
To use the AI-powered chat features:
- Get an API key from OpenRouter
- Edit
src/workspace/ui.rs
and replace the line:with your actual API key:workspace.llm_agent.set_token("!!! YOUR TOKEN HERE !!!");
workspace.llm_agent.set_token("your-actual-api-key-here");
- Rebuild the application:
cargo build
Note: The application works without an API key, but AI chat functionality will be unavailable.
Contributions are welcome! Feel free to fork the repository, submit issues, or suggest new features.
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Make changes and commit:
git commit -m "Added new feature"
- Push to your branch:
git push origin feature-name
- Submit a pull request.