flights: full CONFIG.flights parameterization (altitude, count, speed, holds, destination weights, contrail chance/alt/life/width) + curved random-destination routing
This commit is contained in:
1 parent
fbac24773a
commit
d0aa86ce9b
10 files changed
+1231
-210
No files matched your search
@@ -6,7 +6,8 @@
|
||||
* (default 'ash'). The matching CSS file is loaded at
|
||||
* startup.
|
||||
* language - UI / i18n language code (default 'en').
|
||||
* timeFormat - Moment.js-compatible format string for the clock.
|
||||
* timeFormat - Format string for the clock using the token set below
|
||||
* (Moment.js-like names, own mini-formatter).
|
||||
* debug - If 1, the right-side debug panel is shown.
|
||||
* units - Object with 'temperature' ('C' or 'F').
|
||||
* location - Geographic coordinates for sun/moon calculations. Used
|
||||
@@ -16,9 +17,9 @@
|
||||
* Optionally add 'label' (string) to override the
|
||||
* reverse-geocoded city name.
|
||||
* Note: the height grid is axis-aligned (N up); terrain
|
||||
* matches the 8-mode square mosaic and straight flights
|
||||
* with fetch=N. Heights: Copernicus DEM via terrarium
|
||||
* tiles (z9, ~200 m), fetched once per session.
|
||||
* matches the square ground mosaic and straight flights
|
||||
* (prefetch direction via #fetch=N). Heights: Copernicus
|
||||
* DEM via terrarium tiles (z9, ~200 m).
|
||||
* terrain - 3D ground from real elevation data. Object:
|
||||
* enabled - true (default) / false = flat plane.
|
||||
* exaggeration - vertical scale factor on the DEM
|
||||
@@ -48,9 +49,9 @@
|
||||
* (visibility range at which terrain fully blends into
|
||||
* a milky haze; default 120). false/0 disables fog.
|
||||
* clouds - Vertical extent of the cloud deck in world units
|
||||
* (1 unit = ~13 km at zoom 11; camera flies at y=2.2).
|
||||
* Object with 'top' and 'bottom'. Default keeps the
|
||||
* deck a bit below flight altitude.
|
||||
* (1 unit = ~12.9 km at zoom 11; camera band 15-35 km,
|
||||
* i.e. y ~ 1.16-2.70). Default puts the deck top (~11.6
|
||||
* km) below the lowest flight altitude.
|
||||
* tiles - All downloads (street tiles, elevation grid, last
|
||||
* weather payload, geo label) live permanently in
|
||||
* IndexedDB and are never re-fetched once cached; a
|
||||
@@ -60,16 +61,16 @@
|
||||
*
|
||||
* Time format tokens (subset):
|
||||
* YYYY 4-digit year (2026)
|
||||
* YY 2-digit year (26)
|
||||
* MMMM full month name (October)
|
||||
* MM month with leading zero (10)
|
||||
* DD day with leading zero (07)
|
||||
* HH 24-hour hour with zero (18)
|
||||
* hh 12-hour hour with zero (06)
|
||||
* mm minute with leading zero (14)
|
||||
* ss second with leading zero (25)
|
||||
* a am/pm lowercase (pm) - long form
|
||||
* A AM/PM uppercase (PM) - long form
|
||||
* a am/pm lowercase (pm)
|
||||
* A AM/PM uppercase (PM)
|
||||
* dddd full weekday name (lowercase!)
|
||||
* Any other character is emitted verbatim.
|
||||
*/
|
||||
window.CONFIG = {
|
||||
theme: 'ash',
|
||||
@@ -143,11 +144,39 @@ window.CONFIG = {
|
||||
// hamlet) als leicht gelbliche Glow-Punkte, ab Daemmerung statisch;
|
||||
// je groesser die Siedlung (place-Klasse + population-Tag), desto
|
||||
// mehr und hellere Punkte. Eine Overpass-Abfrage, persistent gecacht.
|
||||
// Daten (c) OpenStreetMap-Mitwirkende, ODbL.
|
||||
// ---- Civil aviation (CONFIG.flights) ---------------------------------
|
||||
// Low-poly jets (CC0 model, vendor/plane3d.js) with randomized target
|
||||
// airports: the destination is rolled at every take-off (hubs weighted
|
||||
// via wHub/wField/wStrip). Paths are gentle Bezier curves resampled to
|
||||
// arc length (constant ground speed) flown as a full profile: take-off
|
||||
// and climb, cruise, descent and landing, a short ground hold, then a
|
||||
// fresh destination. By day sun-lit silhouettes; by night white
|
||||
// strobing position lights with a red beacon. Contrails form above
|
||||
// contrailStartKm on contrailChance of the aircraft and stay visible
|
||||
// for contrailLifeS. All distances in km (world scale: 1 unit = one
|
||||
// z11 tile ~ 12.9 km at 48.6 deg N).
|
||||
flights: {
|
||||
enabled: true,
|
||||
altitudeKm: 14, // cruise altitude
|
||||
climbKm: 100, // climb/descent run to/from cruise altitude
|
||||
count: 84, // max simultaneous aircraft
|
||||
speedKmh: 850, // mean ground speed
|
||||
speedVar: 0.18, // +/- deviation (0..0.5)
|
||||
minLegKm: 60, // shortest leg (no taxi hops)
|
||||
holdMinS: 50, // ground hold at destination (min..max)
|
||||
holdMaxS: 150,
|
||||
wHub: 4, // destination weights: hub / airfield / strip
|
||||
wField: 2,
|
||||
wStrip: 1,
|
||||
contrailChance: 0.6, // share of aircraft with a persistent trail
|
||||
contrailStartKm: 6, // trail formation altitude
|
||||
contrailLifeS: 300, // trail visibility duration
|
||||
contrailWidthM: 310 // full trail width
|
||||
},
|
||||
terrain: {
|
||||
enabled: true,
|
||||
exaggeration: 10,
|
||||
wireframe: false,
|
||||
exaggeration: 8,
|
||||
wireframe: true,
|
||||
nightLights: false,
|
||||
carLights: true,
|
||||
cityLights: true
|
||||
@@ -155,12 +184,17 @@ window.CONFIG = {
|
||||
// Tagessimulation: true = 24h-Zyklus wird in cycleSeconds durchlaufen
|
||||
// (Sonne steigt im Osten, Mittag im Sueden, Untergang im Westen).
|
||||
// false = echte Sonnen-/Mondposition via SunCalc.
|
||||
// fixedTime: 'HH:MM' (oder Zahl 0-24) = Sim-Uhr steht still auf
|
||||
// dieser Tageszeit (bewegte Objekte, Wolken, Autos und Wetter-Sim
|
||||
// laufen unaffected weiter); null/auskommentiert = Uhr laeuft.
|
||||
// 20:00 = maximum Verkehrsaufkommen (Plateau 18:30-23:00, Dichte=1).
|
||||
day: {
|
||||
simulation: false,
|
||||
cycleSeconds: 20
|
||||
cycleSeconds: 20,
|
||||
fixedTime: null
|
||||
},
|
||||
// Wolkendecke in Welt-Einheiten (1 unit ~ 13 km bei Zoom 11;
|
||||
// Kamera fliegt auf y=2.2). Decke etwas unter Flughohe.
|
||||
// Wolkendecke in Welt-Einheiten (1 unit ~ 12.9 km bei Zoom 11;
|
||||
// Flugband 15-35 km = y ~ 1.16-2.70). Oberkante unter dem Tiefpunkt.
|
||||
clouds: {
|
||||
top: 0.9,
|
||||
bottom: -0.3
|
||||
|
||||
Reference in new issue
Block a user