# Mapa y recorridos sobre el relieve lunar · versión 06

El desplegable **Mapa lunar** aparece al entrar en **Caminar por la Luna**. Empieza cerrado para dejar libre la escena. Muestra la región activa —Copérnico, Tycho o el entorno de Apolo 11— y permite visitarla mediante cuatro destinos y un recorrido manual con anterior/siguiente.

- Norte arriba, este a la derecha. La flecha turquesa muestra posición y dirección de la mirada; el texto da distancias desde el centro del recorte y rumbo en grados desde el norte.
- Los colores representan elevación, no luz solar. La parte oscurecida del contorno queda fuera del área caminable. La línea discontinua amarilla marca el límite de exploración que usa `SolarGround` (85 % de la semianchura del DEM).
- Centro, cota alta, sector norte y cota baja son nombres descriptivos de puntos del recorte. **No son accidentes geográficos nuevos ni lugares de alunizaje atribuidos.** Las cotas alta y baja se escogen leyendo los datos de altura dentro del 80 % del área caminable, dejando margen al borde. No son necesariamente el máximo y mínimo de todo el recorte.
- «Ir» y cada paso del recorrido trasladan al observador a otra parada. **No representan una senda ni una ruta transitable calculada.** La cámara mantiene la misma altura real de 1,7 m sobre los triángulos del terreno y mira hacia la siguiente parada, o hacia el centro.
- El detalle sigue limitado por la fuente de aproximadamente 474 m por píxel. El minimapa no añade texturas, rocas ni elevaciones procedurales.

## Código y rendimiento

`js/mapa-lunar.js` contiene la proyección del mapa, selección de destinos, caché de imágenes y controles. `css/mapa-lunar.css` controla la pequeña tarjeta superpuesta. El módulo usa el estado público de `SolarGround`; no mantiene otro reloj ni bucle de animación.

El DEM sólo se pinta al abrir por primera vez cada región (canvas de 216 × 216). Se conservan como máximo tres fondos. Caminar o girar mueve únicamente el indicador SVG y cambia el texto, sin volver a muestrear ni pintar las alturas. Con el mapa cerrado no se calcula su imagen; en otras vistas está oculto y no se actualiza.

Integración:

```js
const mapa = new SolarLunarMap(host, {
  getGround: () => scene.ground,
  onVisit: () => loop.wake(true),
});
mapa.setActive(scene.view === 'ground');
mapa.update();
```

`tests/mapa-lunar.cjs` comprueba norte/este, proyección inversa, rumbo tras varias vueltas, destinos dentro del límite para las tres regiones reales, altura de cámara, extremos del recorrido, cambios de región, caché y mil movimientos sin volver a pintar el DEM.

## Datos y derechos

Se reutilizan sin descargas adicionales los recortes NASA LRO/LOLA del [CGI Moon Kit](https://svs.gsfc.nasa.gov/4720/), ya incluidos y documentados en [luna-v04.md](luna-v04.md) y [suelo-v05.md](suelo-v05.md). La imagen del mapa es una representación de esas alturas, con una paleta creada en código. Se conservan los créditos y condiciones de la distribución existente; no hay un nuevo proveedor ni una licencia adicional de recursos.
