Generación de Rutas con Datos Reales (estado_turismo)
Fecha: 2026-09-18
Fuente de datos: spab-retrieval/data/base/lugares.csv (558 lugares verificados)
Output: GeoJSON + API JS con coordenadas y metadata reales
Script de generación
Ubicación: spab-retrieval/scripts/generar-rutas.mjs
Input:
data/destinos.json→ coordenadas y metadata de destinosdata/base/lugares.csv→ 558 lugares con lat/lon, rating, reviews, giro
Output por ruta:
ruta-{nombre}/ruta-{nombre}.geojson→ FeatureCollection con:- 1 LineString (corredor conectando destinos)
- N Points (estaciones/destinos principales)
- M Points (lugares individuales con metadata)
ruta-{nombre}/src/{nombre}-api.js→ API compatible con place-store.js
Comando:
cd spab-retrieval
node scripts/generar-rutas.mjsDatos generados (verificados)
🌊 Ruta Pacífico
Destinos: Puerto Vallarta → Acapulco → Puerto Escondido
Archivos:
ruta-pacifico/ruta-pacifico.geojson(73 KB)ruta-pacifico/src/pacifico-api.js(14 KB)
Lugares:
- Total en CSV: 154 lugares reales
- Top 10 por destino: 30 lugares en API
- Categorías: hoteles, restaurantes (mapped a estancia/comida)
Coordenadas del corredor:
[-105.2253, 20.6534] → Puerto Vallarta
[-99.8237, 16.8531] → Acapulco
[-97.0767, 15.8721] → Puerto Escondido
Mapa centrado en: [-100, 18] zoom 5.5
🏛️ Ruta Colonial
Destinos: Ciudad de México → San Miguel de Allende → Oaxaca de Juárez
Archivos:
ruta-colonial/ruta-colonial.geojson(86 KB)ruta-colonial/src/colonial-api.js(14 KB)
Lugares:
- Total en CSV: 180 lugares reales
- Top 10 por destino: 30 lugares en API
- Categorías: hoteles, restaurantes, atracciones
Coordenadas del corredor:
[-99.1332, 19.4326] → Ciudad de México
[-100.7436, 20.9144] → San Miguel de Allende
[-96.7266, 17.0732] → Oaxaca de Juárez
Mapa centrado en: [-99, 19.5] zoom 6
Estructura de datos
GeoJSON Feature por lugar
{
"type": "Feature",
"properties": {
"tipo": "lugar",
"nombre": "Restaurante Pez Gallo",
"destino": "Puerto Escondido",
"giro": "restaurantes",
"categoria": "comida",
"rating": 4.8,
"n_resenas": 2694,
"place_id": "ChIJc6pn0Pz3uIURqIQ1uqH0ot8"
},
"geometry": {
"type": "Point",
"coordinates": [-97.08965099999999, 15.8649411]
}
}API JS exportada
export const pacificoApi = {
async loadRoute() // → GeoJSON completo
async loadIndex() // → lista de lugares para panel
async loadCards() // → cards con rating/precio
async getDetail(id) // → detalle completo de lugar
}Mapeo de categorías
De lugares.csv (giro) → Frontend (categoria):
{
'hoteles': 'estancia',
'restaurantes': 'comida',
'atracciones': 'patrimonio',
'tours': 'naturaleza'
}Colores por categoría (definidos en CATEGORIES):
- comida:
#C23F38 - estancia:
#5C6B2B - patrimonio:
#8A5A3B - naturaleza:
#2D7F4F
Cambios en index.html
Ruta Pacífico:
// Antes
import { trenMayaApi, CATEGORIES } from './src/tren-maya-api.js';
// Después
import { pacificoApi, CATEGORIES } from './src/pacifico-api.js';
// Cambios adicionales
- Título: "Destinos Pacífico" (antes "Estaciones Tren Maya")
- Centro del mapa: [-100, 18] zoom 5.5
- Primer destino: automático (estaciones[0])Ruta Colonial:
import { colonialApi, CATEGORIES } from './src/colonial-api.js';
// Cambios adicionales
- Título: "Ciudades Coloniales"
- Centro del mapa: [-99, 19.5] zoom 6
- Primer destino: automáticoVerificación de datos reales
Ejemplo Puerto Escondido (línea 1 de CSV):
puerto-escondido,Nílu Puerto Escondido by Selina,hoteles,ChIJS6jOoIf3uIURPByms6OmPKA,15.8569085,-97.0580244,4.2,1867,2026-09-18T16:23:30.546ZTransformado a:
{
id: 'puerto-escondido-0',
name: 'Nílu Puerto Escondido by Selina',
cat: 'estancia',
lat: 15.8569085,
lng: -97.0580244,
rating: 4.2,
reviewCount: 1867,
price: 3,
vol: 0.19 // normalized by reviews/10000
}Próximos pasos
Regenerar rutas cuando se actualicen datos
cd spab-retrieval
node scripts/generar-rutas.mjsAñadir más destinos a una ruta existente
- Actualizar
RUTASengenerar-rutas.mjs:pacifico: { destinos: ['puerto-vallarta', 'mazatlan', 'acapulco', 'huatulco'], // ... } - Asegurar que los destinos existan en
data/destinos.json - Recolectar lugares con Google Places API si faltan
- Ejecutar
node scripts/generar-rutas.mjs
Añadir nueva ruta
- Crear entrada en
RUTAS:bajio: { destinos: ['guanajuato', 'queretaro', 'san-miguel-de-allende'], nombre: 'Ruta del Bajío', descripcion: 'Ciudades del Bajío mexicano', color: '#F59E0B' } - Duplicar carpeta:
cp -R ruta-maya ruta-bajio - Ejecutar generador:
node scripts/generar-rutas.mjs - Actualizar
ruta-bajio/index.htmlimports y metadata
Commit de esta sesión
git add decisions/ ruta-colonial/ ruta-pacifico/ spab-retrieval/scripts/generar-rutas.mjs
git commit -m "feat: generar rutas Pacífico y Colonial con datos reales
- Script generar-rutas.mjs: transforma lugares.csv a GeoJSON + API JS
- Ruta Pacífico: Puerto Vallarta, Acapulco, Puerto Escondido (154 lugares)
- Ruta Colonial: CDMX, San Miguel, Oaxaca (180 lugares)
- Todas las coordenadas/ratings son datos verificados de Google Places
- Documentación completa en decisions/"Regla de oro
No inventar datos. Siempre retrieval + match.
- Todos los lugares vienen de
lugares.csv(Google Places API) - Todas las coordenadas son reales
- Todos los ratings/reviews son verificados
- El script solo transforma, nunca genera datos ficticios