import { PbfWriter } from 'pbf'; const json = (body) => ({ status: 200, contentType: 'application/json', body: JSON.stringify(body), }); // Cesium heightmap-1.0: 65x65 little-endian uint16 heights, scale .2, // offset -1000, followed by child availability and a uniform land mask. const flatTerrain = Buffer.alloc(65 * 65 * 2 + 2); for (let i = 0; i < 65 * 65; i++) flatTerrain.writeUInt16LE(5000, i * 2); /** Synthetic, geographically aligned motor roads at both source zooms. */ export function trafficFixtureTile(zoom, flow = false) { const writer = new PbfWriter(); writer.writeMessage( 3, (_, layer) => { layer.writeVarintField(15, 2); layer.writeStringField(1, flow ? 'Traffic flow' : 'transportation'); layer.writeVarintField(5, 4096); layer.writeStringField(3, flow ? 'traffic_level' : 'class'); layer.writeMessage( 4, (_, value) => { if (flow) value.writeDoubleField(3, 0.6); else value.writeStringField(1, 'primary'); }, null, ); if (flow) { layer.writeStringField(3, 'road_type'); layer.writeMessage( 4, (_, value) => value.writeStringField(1, 'Major road'), null, ); } // z12 has four times the span of z14. Keep the same world spacing, // and cover only alternate roads with flow to exercise hide/sim controls. const step = 256 * 2 ** (zoom - 14); for (let y = step; y < 4096; y += step) { if (flow && (y / step) % 2) continue; layer.writeMessage( 2, (_, feature) => { feature.writeVarintField(3, 2); feature.writePackedVarint(2, flow ? [0, 0, 1, 1] : [0, 0]); feature.writePackedVarint(4, [9, 0, y * 2, 10, 8192, 0]); }, null, ); } }, null, ); return Buffer.from(writer.finish()); } /** Intercept the current vector sources; never fall through to live roads. */ export function trafficFixtureResponse(request) { const url = new URL(request.url()); if (url.hostname === 'terrain.reearth.land') { if (url.pathname.endsWith('/layer.json')) return json({ tilejson: '2.1.0', format: 'heightmap-1.0', version: 'qa-flat', scheme: 'tms', projection: 'EPSG:4326', minzoom: 0, maxzoom: 0, tiles: ['{z}/{x}/{y}.terrain?v={version}'], available: [[{ startX: 0, startY: 0, endX: 1, endY: 0 }]], attribution: 'Synthetic flat terrain for Traffic QA; not live elevation data', }); if (/\/0\/[01]\/0\.terrain$/.test(url.pathname)) return { status: 200, contentType: 'application/octet-stream', body: flatTerrain, }; throw new Error(`Unexpected terrain fixture request: ${url.pathname}`); } if (url.pathname === '/api/tomtom/status') return json({ hasKey: true, dailyCount: 0 }); const flow = url.pathname.match( /^\/api\/tomtom\/flow\/(\d+)\/\d+\/\d+\.pbf$/, ); if (flow) return { status: 200, contentType: 'application/x-protobuf', body: trafficFixtureTile(Number(flow[1]), true), }; if (url.hostname !== 'tiles.openfreemap.org') return null; if (url.pathname === '/planet') return json({ tilejson: '3.0.0', minzoom: 0, maxzoom: 14, tiles: ['https://tiles.openfreemap.org/qa-traffic/{z}/{x}/{y}.pbf'], }); const road = url.pathname.match(/^\/qa-traffic\/(\d+)\/\d+\/\d+\.pbf$/); if (!road) throw new Error(`Unrecognized road fixture request: ${url.pathname}`); return { status: 200, contentType: 'application/x-protobuf', body: trafficFixtureTile(Number(road[1])), }; }