UrbanViable is a geospatial scouting platform that helps you find the best commercial locations in Galicia. Adjust sliders for income, demographic profile, commercial activity, and building characteristics — the map updates in real time at 60 fps using MapLibre GL JS GPU expressions. No server is involved in scoring.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/danizd/urbanviable/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Run the ETL pipeline and launch the map in a few commands.
Architecture
Understand the two-container setup and how data flows from ETL to GPU.
ETL Pipeline
Download, process, and tile four open data sources into MBTiles.
Frontend
MapLibre GL JS components, the scoring hook, and design tokens.
Deployment
Docker Compose setup for TileServer GL + Nginx on Oracle Cloud ARM.
Data Model
The 11-column tile schema that is the contract between ETL and frontend.
How It Works
Run the ETL pipeline
Download open data from CNIG, INE, OpenStreetMap, and Catastro. Run
python etl/process_data.py to produce a normalized GeoJSON with 7 socioeconomic indicators per census section.Generate vector tiles
Convert the GeoJSON to a compact MBTiles file with
bash etl/generate_tiles.sh using Tippecanoe. The result is ~15–40 MB and covers zoom levels 6–14.Launch the stack
Run
docker compose up -d to start TileServer GL (serving .pbf tiles) and Nginx (hosting the React app and proxying tile requests).Key Features
Zero-Server Scoring
All score computation happens in MapLibre GL JS paint expressions evaluated by the client GPU. Slider changes never trigger a server request.
7 Weighted Indicators
Household income, population density, youth ratio, elderly ratio, commercial activity, building use, and building age — all normalized to [0, 1].
Open Data Sources
Built entirely on publicly available data: CNIG census geometries, INE Atlas de Renta, OpenStreetMap POIs, and Catastro building records.
Fully Containerized
Two-container Docker Compose stack (TileServer GL + Nginx) deployable on any Linux server, including Oracle Cloud Always Free ARM instances.