Map¶
OpenStreetMap-based mapping platform with tiles, geocoding, and routing.
| Property | Value |
|---|---|
| Port | 3030 |
| Env-Ctrl Port | 3031 |
| Image | am1n3e/webarena-verified-map |
| Container | webarena-verified-map |
Optimization¶
Unlike other environments where the focus was on reducing image size, the Map environment optimization focuses on usability. The original WebArena setup required deploying 5 separate containers:
- Tile server (
overv/openstreetmap-tile-server) - Nominatim geocoding server (
mediagis/nominatim:4.2) - 3 OSRM routing servers for car, bike, and foot
Each container needed its own configuration, data volumes, and orchestration. The optimized image consolidates all services into a single container with unified management through env-ctrl, making deployment straightforward.
Quick Start¶
Map requires external data files (~60GB) to be downloaded before starting.
# 1. Download data and set up volumes
webarena-verified env setup init --site map --data-dir ./downloads
# 2. Start the container
webarena-verified env start --site map
Access at: http://localhost:3000
Architecture¶
The map environment is a combined image with multiple services:
| Service | Internal Port | Description |
|---|---|---|
| Rails | 3000 | OpenStreetMap website |
| PostgreSQL 14 | 5432 | Website database |
| PostgreSQL 15 | 5433 | Tile database (gis) |
| Apache + mod_tile | 8080 | Tile server |
| renderd | - | Tile rendering daemon |
| OSRM (car) | 5000 | Car routing API |
| OSRM (bike) | 5001 | Bike routing API |
| OSRM (foot) | 5002 | Foot routing API |
Data Requirements¶
Map requires external data files for tiles and routing:
Data Sizes¶
| Data | Size | Description |
|---|---|---|
| Tile database | ~39 GB | PostgreSQL with pre-rendered tiles |
| Car routing | ~5.8 GB | OSRM routing graph |
| Bike routing | ~7.0 GB | OSRM routing graph |
| Foot routing | ~7.4 GB | OSRM routing graph |
Service Endpoints¶
When running with full data:
| Endpoint | URL |
|---|---|
| Website | http://localhost:3030/ |
| Tiles | http://localhost:8080/tile/{z}/{x}/{y}.png |
| Routing (car) | http://localhost:5000/route/v1/driving/{coords} |
| Routing (bike) | http://localhost:5001/route/v1/driving/{coords} |
| Routing (foot) | http://localhost:5002/route/v1/driving/{coords} |
| Routing (proxy) | http://localhost:8080/osrm/routed-{car,bike,foot}/route/v1/driving/{coords} |
Testing Routing¶
# Test routing API (NYC to Brooklyn)
curl "http://localhost:5000/route/v1/driving/-74.006,40.7128;-73.9352,40.7306?overview=full&steps=true"
Resource Requirements¶
- Disk: Minimum 200GB for full tile and routing data
- Memory: 4GB+ recommended
- Swap: 4GB recommended