--- // Mapbox GL map. Access token from site.mapboxKey. Renders nothing unless // maps[mapId] exists. import maps from '@data/maps.json'; import site from '@data/site.json'; import CaptureScript from '../components/CaptureScript.astro'; interface Props { /** Key into the maps data */ mapId: string; ratio?: string; } const { mapId, ratio } = Astro.props; type MapData = { title?: string; ratio?: string; card?: boolean; style?: string; zoom?: number; center?: [number, number]; markers?: { name?: string; center: [number, number] }[]; }; const data = (maps as unknown as Record)[mapId]; const mapContainerId = `map-${mapId}`; const style = data ? (data.style ?? 'streets-v11') : undefined; const zoom = data?.zoom ?? 13; const center = data?.center ? [data.center[1], data.center[0]] : [13.4049, 52.518827]; const markers = (data?.markers ?? []).map((marker) => [marker.center[1], marker.center[0]]); const ratioClass = data?.ratio ?? ratio ?? '16x9'; --- { data && (
) } { data && ( ) }