mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-13 14:52:19 +00:00
DATA LAYERS keeps its curated core layers; regional and niche sources live in the Data Library, opened from Browse data library at the foot of the panel. Each entry is a JSON manifest in src/library/entries/ pointing at a live upstream (query API, provider-hosted file or tile endpoint), so nothing is bundled and a self-hosted instance hosts no data. Sources without CORS go through one allowlisted /api/library route. Kinds: dataset (GeoJSON, CSV, JSON records, ArcGIS, partitioned GeoParquet), tiles (XYZ, WMS/ArcGIS bbox export, terrarium relief) and pack. Selections persist and travel in share links as lib=, separate from the core layer tokens. Library rows get Zoom and Remove icon chips that work while the layer is off, rendered through RailChips. Strings are translated in every locale.
55 lines
3.6 KiB
HTML
55 lines
3.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>God's Eye View</title>
|
|
<!-- Raster fallbacks: Safari ignores an SVG apple-touch-icon and falls back to a
|
|
screenshot of the page, so an installed app needs a real PNG. Regenerate
|
|
these from the logo with `node scripts/generate-icons.mjs`. -->
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/icons/icon-32.png" />
|
|
<!-- Listed after the PNG: browsers that use the last usable icon keep the SVG
|
|
for the tab. -->
|
|
<link rel="icon" type="image/svg+xml" href="/logo.svg" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/icons/icon-180.png" />
|
|
<link rel="manifest" href="/manifest.webmanifest" />
|
|
<meta name="theme-color" content="#0a0a0f" />
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
|
<meta name="apple-mobile-web-app-title" content="God's Eye" />
|
|
<link rel="stylesheet" href="/style.css" />
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&family=Noto+Sans+Arabic:wght@400;500;600;700&family=Noto+Sans+Hebrew:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
|
<!-- Icon font subset to the glyphs this app renders. Keep `icon_names` in sync
|
|
with the sources: src/materialSymbolsSubset.test.mjs fails when a source
|
|
names a glyph this list is missing, because a missing glyph does not draw
|
|
a box — the ligature never forms and the element renders the literal word. -->
|
|
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20,400,0,0&icon_names=adjust,arrow_drop_down,arrow_forward,arrow_left,arrow_right,bolt,bug_report,category,chevron_left,chevron_right,close,close_fullscreen,dark_mode,delete,directions_boat,draw,east,eco,egg_alt,flare,flight,handyman,layers,layers_clear,light_mode,local_fire_department,location_on,more_horiz,movie,my_location,navigation,normal,on,open_in_full,partly_cloudy_day,pause,pentagon,pest_control,pets,play_arrow,public,question_mark,radar,radio,raven,right_panel_close,right_panel_open,rocket_launch,satellite_alt,search,set_meal,settings,skip_next,skip_previous,streetview,timeline,traffic,tune,umbrella,upload_file,videocam,view_in_ar,visibility,visibility_off,water_drop,zoom_in_map" rel="stylesheet" />
|
|
</head>
|
|
<body>
|
|
<div class="gev-view" data-gev-view="scene-chrome"></div>
|
|
<div class="gev-view" data-gev-view="cockpit"></div>
|
|
<div class="gev-view" data-gev-view="display-controls"></div>
|
|
<div class="gev-view" data-gev-view="command-dock"></div>
|
|
<div class="gev-view" data-gev-view="layer-panels"></div>
|
|
<div class="gev-view" data-gev-view="context"></div>
|
|
<div class="gev-view" data-gev-view="welcome"></div>
|
|
<div class="gev-view" data-gev-view="provider-settings"></div>
|
|
<!-- Intelligence HUD Overlay -->
|
|
<div class="gev-view" data-gev-view="intel-hud"></div>
|
|
|
|
<!-- Loading screen -->
|
|
<div id="loading-screen">
|
|
<div class="loader-content">
|
|
<span class="loader-logo brand-logo" data-logo-gaze data-logo-src="/logo.svg" aria-hidden="true"><img src="/logo.svg" alt="" /></span>
|
|
<h2 translate="no">GOD'S EYE <span class="title-accent">VIEW</span></h2>
|
|
<p class="loader-status" data-i18n>Initializing photorealistic world...</p>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="module" src="/src/main.js"></script>
|
|
</body>
|
|
</html>
|