97ebcdfe03035892904237b1668cc0f9d5bc9a83
Bug 1: Content-Type vacio para .pmtiles
- Vite/Astro sirven .pmtiles sin Content-Type (extension desconocida)
- pmtiles del cliente falla al parsear el header del archivo
- Solucion: plugin Vite inline 'assetMimePlugin' en astro.config.mjs que
setea application/octet-stream para .pmtiles, application/geo+json
para .geojson, application/json para /data/*.json
Bug 2: MapLibre override de 'position: absolute'
- El <div id='map' class='absolute inset-0'> era override por la clase
'.maplibregl-map { position: relative }' que MapLibre anade al container
en runtime. Resultado: #map con 0px de alto, canvas de 300x1280
(default) en lugar de 660x1280
- Solucion: cambiar a inline style 'position: absolute; inset: 0;' que
no es override por clases externas
Bug 3: evento 'load' se dispara antes del handler
- Los <script> de Astro 7 se cargan como modulo defer, asi que el
evento 'load' del map puede dispararse ANTES de que registremos el
handler. El loading overlay se queda visible encima del mapa
- Solucion: patron seguro que chequea isStyleLoaded() y si ya paso
ejecuta el callback inmediatamente, si no registra once('load', ...).
Tambien setTimeout(3000) como safety net
Bug 4: zoom 8 demasiado bajo para ver secciones censales
- A zoom 8 las 674 secciones censales de las Balears son 1-2px cada
una: aparecen como ruido gris plano
- Solucion: zoom inicial 9.5 centrado en Mallorca (lat 39.6, lon 2.85)
para que las secciones se vean como poligonos de 3-6px
Cambios adicionales:
- URL del source pmtiles con window.location.origin (protocolo pmtiles
requiere URL absoluta, no funciona con path relativo)
- Data del source airbnb con window.location.origin
- Sintaxis del style arreglada (faltaba { de apertura de la primera layer
tras un edit anterior)
- TypeScript 5.9.3 mantiene typecheck 0/0/0
Cases Tancades
Web publica que visibilitza la pressio turistica sobre el parc residencial de Balears, creuant dades oficiales d'INE (consum electric per seccio censal, com a proxy de vivenda semi-vacia) amb dades d'Inside Airbnb (listings georreferenciats).
Veure PLAN.md per al plan complet i l'arquitectura.
Estructura
data/raw/ Dades originals descarregades (no commitejades)
data/processed/ Dades intermiges del pipeline
data/output/ Dades finals (parquet, tiles, JSON)
docs/ Documentacio i materials de suport
scripts/ Pipeline Python
web/ Codi Astro de la web
FASE-*.md Bitacora de cada fase del projecte
Setup rapid
# Python
uv venv .venv
source .venv/bin/activate
uv pip install -r requirements.txt
# Node
nvm use 20
Estat
| Fase | Estat |
|---|---|
| Fase 0 - Setup | En curs |
| Fase 1 - Dades | Pendent |
| Fase 2 - Web MVP | Pendent |
| Fase 3 - Llanament | Pendent |
Fonts de dades
- INE - Intensitat d'us per consum electric: taula del fitxer
data/raw/viviendas vacias-hipotecas.xlsx(full 1). - INE - Seccions censals de Balears: shapefile descarregat de https://www.ine.es/prodyser/cartografia/seccionado_2025/
- Inside Airbnb - Listings Balears: http://insideairbnb.com/get-the-data/
- Captures conferencia OHIB (12-13 nov 2025):
docs/conferencia-OHIB-2025/
Llicencia
A determinar. Probablement CC BY-SA 4.0.
Languages
Astro
56.6%
Python
36.7%
JavaScript
4.2%
TypeScript
2.1%
CSS
0.4%