A Pan-African maps platform with self learning and improving features
# Atlas
A Pan-African maps platform built entirely in Rust. Tile serving, geocoding, routing, and place search — optimized for African road networks, addressing patterns, and languages.
## Features
- **Tile Serving** — PMTiles vector tiles via S3 range requests with LRU cache
- **Geocoding** — Forward and reverse geocoding with multi-language support (English, French, Arabic, Swahili, Twi, Yoruba) and landmark-relative addressing ("near the MTN mast")
- **Routing** — Point-to-point routing with 4 profiles (car, motorcycle, bicycle, foot) and African road condition penalties (unpaved, seasonal closures)
- **Place Search** — POI discovery with distance scoring and category filtering
- **Turn-by-Turn Navigation** — Route instructions with simulated navigation camera
- **Community Contributions** — Users report wrong turns, road closures, and bad conditions. Reports feed back into routing as edge penalties.
- **Trip Telemetry & ETA Learning** — Collect real GPS traces from users who opt in. Aggregate actual travel speeds per road segment. ETAs improve over time based on what drivers actually experience, not just speed limits.
- **Auth & Rate Limiting** — DynamoDB API key authentication with per-key token bucket rate limiting
- **Metrics** — Prometheus endpoint with request counters, latency histograms, cache stats
## Quick Start
### Prerequisites
- Rust 1.75+ (`curl --proto '=https' --tlsv1.2 -sSf
sh.rustup.rs | sh`)
- Node.js 20+ (for the frontend)
- pmtiles CLI (for downloading tile data)
### 1. Clone and build
```bash
git clone
github.com
cd atlas
cargo build --release -p atlas-server -p atlas-ingest
```
### 2. Download test data
```bash
./scripts/download-test-data.sh
```
This downloads a small PMTiles extract for Accra and the Ghana OSM PBF (~105MB).
### 3. Build geocoding and search indices
```bash
cargo run --release -p atlas-ingest -- --osm-dir ./data/osm --output-dir ./test-data
cargo run --release -p atlas-ingest - …