God's Eye View's code is MIT-licensed. The MIT grant covers the source code only — it does NOT extend to third-party data or visual assets. Every third-party source keeps its own license and terms. This file documents the live and bundled data sources; bundled 3D-model provenance is recorded in public/models/README.md.
How to read this:
- The non-permissive datasets are carved out, not omitted. Some bundled data (e.g. TeleGeography, CC BY-NC-SA) isn't MIT-compatible. Rather than hide it, we bundle it with a clear license carve-out so the app works out of the box — but it stays under the provider's terms.
- If your use doesn't fit a dataset's license, remove that dataset. Most importantly: TeleGeography is NonCommercial — commercial users must delete it (or license it from TeleGeography). It's one self-contained folder.
- Attribution is shown in-app and listed here. Keep it intact. The required Google/Cesium credit renders on the on-globe credit line (bottom-left,
#cesium-credits), and every per-layer credit below is registered into the expandable "Data attribution" lightbox on that line (src/data/dataCredits.js→viewer.creditDisplay.addStaticCredit). Both stay visible in clean-view and recording modes. - Bundled model attribution lives beside the model files.
public/models/README.mdrecords each shipped model's creator, source, license, and modification status.
| Source | Used for | License / terms | Attribution |
|---|---|---|---|
| OpenStreetMap ALPR camera locations (including DeFlock community mapping) | Optional mapped automatic license-plate-reader camera layer | ODbL 1.0; commercial use permitted with applicable attribution and database share-alike obligations | © OpenStreetMap contributors; DeFlock community mapping |
| Google Map Tiles API (Photorealistic 3D Tiles) + Places/Geocoding | The 3D globe, voice scene context, and on-demand nearby installation search | Google Maps Platform ToS (proprietary, your own key + billing) | "Google" / "Google Maps" logo — shown in-app, required |
| OpenSky Network | Primary worldwide live-flight snapshot | Non-commercial research/education license | Schäfer et al., "Bringing Up OpenSky", IPSN 2014 + opensky-network.org |
| adsb.lol point API | Bounded live-flight fallback when OpenSky has no usable snapshot | ODbL 1.0 | adsb.lol contributors; api.adsb.lol/v2/lat/{lat}/lon/{lon}/dist/{radius} |
| adsb.lol | Military flights + aircraft traces | ODbL 1.0 | "adsb.lol" (ODbL) |
| AISStream.io | Live vessels (AIS) | Free, beta, no formal ToS; AIS is a public broadcast | "AISStream.io" (courtesy) |
| CelesTrak | Satellite TLEs (SGP4) | US-government-origin data, no license; citation requested | "CelesTrak (celestrak.org), Dr. T.S. Kelso" |
| The Space Devs — Launch Library 2 v2.3 | Recent launch, payload, stage, and recovery metadata for Space Missions (30d) | The Space Devs terms of use: data may be used and shared in any form; avoid forwarding it without added value; attribution is encouraged (not mandatory). Official API limits: 15 unauthenticated calls/hour; optional token | "Launch Library 2 — The Space Devs" (courtesy attribution) |
| Esri World Imagery (ArcGIS Online tile service) | The keyless satellite basemap — the default landing when no Google/ion credential is configured, and the "Esri Satellite" map stack | Esri Master Agreement: the public World Imagery service is usable in public-facing apps with attribution; no key is required for this classic endpoint, but Esri governs and can change access — an app at scale should review current ArcGIS Location Platform terms | "Powered by Esri — Source: Esri, Maxar, Earthstar Geographics, and the GIS User Community" (provider carries the service's own credit line) |
| USGS | Earthquakes | U.S. public domain | "Data courtesy of the U.S. Geological Survey" |
| OpenStreetMap (Overpass API) | Road geometry for traffic | ODbL 1.0 | "© OpenStreetMap contributors" |
| TomTom Traffic API (flow vector tiles) | Live congestion coloring for the traffic layer (optional, BYOK) | TomTom for Developers terms (proprietary, your own key; free tier currently 200K tile requests/month — see current pricing) | "Traffic flow data © TomTom" — registered when live mode activates |
| OpenStreetMap (Overpass API) | Viewport-bounded mapped installation context for Global Context | ODbL 1.0 | "© OpenStreetMap contributors" (incomplete mapped context) |
| Photon (komoot) | Keyless place search — the fallback when no Google Maps key is configured, or when Google declines the Geocoding request | Service: free public instance, fair use (no bulk/heavy use); underlying data: ODbL 1.0 | "Photon (komoot)" + "© OpenStreetMap contributors" |
| OpenStreetMap (Nominatim) | Reverse-geocoded place label in the cockpit Local Info page, and last-resort forward place search via /api/geocode when Google and Photon do not answer |
ODbL 1.0 + Nominatim usage policy (maximum 1 request/second, results cached, identifying User-Agent) | "© OpenStreetMap contributors" |
| Open-Meteo | Current weather in the cockpit Local Info page and cockpit-local dynamic atmospheric effects | CC BY 4.0 data licence and adjacent-link attribution requirement | Linked "Weather data by Open-Meteo.com" beside the displayed local data |
| Google News RSS | Primary locality-matched headlines in the cockpit Regional News page | Google News Terms of Service restrict use to personal, noncommercial use; linked articles remain third-party publisher content and retain publisher terms | "Google News RSS" plus each article's linked publisher/domain |
| GDELT Project DOC 2.0 | Fail-soft fallback for location-matched cockpit headlines | GDELT Terms of Use: unrestricted academic/commercial/governmental dataset use, with citation and link required; linked articles retain publisher terms | "GDELT Project" plus each article's linked publisher/domain |
| City of Austin Open Data | CCTV camera catalog + frames | City of Austin Open Data Terms of Use | "City of Austin, TX — data.austintexas.gov" |
| TxDOT ITS (its.txdot.gov) | CCTV camera catalogs + frames, Texas districts | Public TxDOT traffic camera data | "Texas Department of Transportation" (courtesy) |
| City of Tallinn (ristmikud.tallinn.ee) | CCTV camera catalog + frames, Tallinn intersections | Public City of Tallinn traffic camera data | "City of Tallinn — ristmikud.tallinn.ee" (courtesy) |
| Transpordiamet / Tarktee | CCTV camera catalog + frames, Estonia road-weather cameras | Public Transpordiamet / Tarktee road camera data | "Transpordiamet / Tarktee — tarktee.transpordiamet.ee" (courtesy) |
| Stadt Warendorf webcam | Webcam frames, Marktplatz / Historisches Rathaus (config/cctv_sources.warendorf.json) |
Public municipal webcam data | "Stadt Warendorf — webcam.warendorf.de" (courtesy); mount and heading derived from OSM geometry, "© OpenStreetMap contributors" (ODbL) |
| Live Traffic NSW (Transport for NSW) | CCTV camera catalog + frames, New South Wales | CC BY 4.0 — attribution REQUIRED | "Live Traffic NSW — Transport for NSW" |
| Caltrans (cwwp2.dot.ca.gov) | CCTV camera catalogs + frames, California districts | Public Caltrans traffic camera data | "Caltrans — cwwp2.dot.ca.gov" (courtesy) |
| TfL Open Data (JamCams) | CCTV camera catalog + frames, London | TfL Open Data terms — attribution REQUIRED | "Powered by TfL Open Data. Contains OS data © Crown copyright and database rights" |
| Ontario 511 | CCTV camera catalog + frames, Ontario highways including Kitchener-area routes | Open Government Licence – Ontario | "Ontario 511" plus Open Government Licence - Ontario |
| Fintraffic / Digitraffic (weathercams) | CCTV camera catalog + frames, Finland | CC BY 4.0 — attribution REQUIRED | "Fintraffic / digitraffic.fi, license CC BY 4.0" |
| DriveBC (Government of British Columbia) | CCTV camera catalog + frames, British Columbia highways | Open Government Licence – British Columbia — attribution REQUIRED | "DriveBC. Contains information licensed under the Open Government Licence – British Columbia" |
Open Calgary (data.calgary.ca) |
CCTV camera catalog + frames, Calgary | Open Government Licence – City of Calgary — attribution REQUIRED | "Contains information licensed under the Open Government Licence – City of Calgary" |
| GBFS (Lyft / BCycle) | Bikeshare availability | Per-feed (attribution-only) | Credit the operator (e.g. Austin BCycle) + its license_url |
| Radio Browser | Geolocated internet-radio station directory and station-level tags | Public-domain directory data under PDDL 1.0; individual broadcaster stream terms apply | "Radio Browser" plus a link to the selected broadcaster |
| Re:Earth Terrain (Mapterhorn) | Terrain (keyless globe stacks — OSM etc. — + /api/terrain/heights ellipsoidal-height lookups) |
Terrain mesh: CC BY 4.0; geoid: EGM2008 (NGA, public domain) | "Terrain (keyless globe stacks): Re:Earth Terrain / Mapterhorn (CC BY 4.0) / EGM2008 (NGA)" |
OSRM on the FOSSGIS routing servers (routing.openstreetmap.de) |
Street-following routes for the Directions layer and voice route annotations, via /api/route |
FOSSGIS routing usage policy: "Display the required attribution and display a link to 'fix the map'", "Use a valid user agent and, if applicable, a correct referrer", "One request per second max", "No scraping, no heavy usage". The full policy is the German FOSSGIS Nutzungsbedingungen; FOSSGIS also states that the server may be embedded in your own pages but "eine gewerbliche Nutzung ist nur mit Einschränkungen erlaubt" (commercial use only with restrictions). Route data derives from OpenStreetMap (ODbL 1.0) | "Routing: OSRM on the FOSSGIS servers" + "© OpenStreetMap contributors" + a "fix the map" link — shown in the Data attribution popover |
- Google Maps Platform. You supply your own API key and are bound by Google's ToS. Google Maps Content (tiles, geocodes, places) may not be cached, stored, rehosted, or committed — this app only ever uses it live, which is the compliant pattern. The "Google" attribution is displayed on the globe and must stay visible. Restrict your key (see SECURITY.md).
- OpenSky Network. Its license is non-commercial, and operational use of the REST API in a live product can require a prior written agreement with OpenSky — even for non-profit/government use. If you deploy this commercially, contact OpenSky for your own terms. The flights layer is a toggle and runs anonymously by default.
- adsb.lol flight fallback. When OpenSky is unavailable and no last-good OpenSky response exists, the server requests a cached, capped 250 nm adsb.lol point snapshot around the current camera subpoint. This is regional observed context, not worldwide completeness; provenance is exposed in the Flights stats/context row. Military ICAOs remain reconciled through the existing dedicated military registry rather than duplicated.
- Launch Library 2.
/api/launchesmakes a server-side rolling-30-day query against the supported v2.3 detailed launch endpoint, caches successful responses for 15 minutes in memory and on disk, and serves the last successful response during a throttle or transient outage. Anonymous access is limited to 15 calls/hour; deployments can provideLL2_API_TOKENfor authenticated access. The Space Devs' published terms permit using and sharing the API data in any form, ask users not to forward it without adding value, disclaim complete accuracy, and encourage—but do not require—attribution. This app keeps a courtesy credit. Payload and stage/recovery records are shown only when supplied. Failed launches expose their source status and never receive fallback orbit geometry or a live/estimated marker. LL2 supplies launch context and event timing, not continuous ascent telemetry or live orbital state. - TfL JamCams. The camera list comes from the keyless
api.tfl.gov.ukendpoint (an optionalTFL_APP_KEYraises its rate limit); frames come from TfL's public S3 bucket. The "Powered by TfL Open Data" attribution is required by TfL's terms and is registered in the Data attribution popover. - Ontario 511 CCTV. The camera list comes from the keyless
511on.ca/api/v2/get/camerasendpoint; frames are server-registered still images under511on.ca/map/Cctv/. The source is live-fetched at runtime and attributed under the Open Government Licence - Ontario. - Fintraffic weathercams. The camera list is one keyless GeoJSON request to
tie.digitraffic.fi/api/weathercam/v1/stations(809 stations / 2,275 presets), sent with theDigitraffic-User: gods-eye-viewheader the service asks clients to identify themselves with and with gzip; frames are stills onweathercam.digitraffic.fi, refreshed on each station's 600 s collection interval, which is also the client's ambient-still refresh cadence for this pack (the active camera keeps the usual 10-second refresh). One preset (a fixed camera view) is one camera; stations notGATHERINGand presets notinCollectionare dropped. Attribution is required by the CC BY 4.0 licence and is registered in the Data attribution popover.CCTV_FINTRAFFIC_ENABLED=0is the kill switch. - DriveBC highway cameras. The camera list comes from the keyless
https://www.drivebc.ca/api/webcams/endpoint served by the DriveBC.ca site (bcgov/DriveBC.ca); frames come fromhttps://www.drivebc.ca/images/<id>.jpg, built from the numeric camera id. DataBC's DriveBC HighwayCams catalogue entry publishes the same cameras under the Open Government Licence – British Columbia, but its CSV still lists the retiredimages.drivebc.caframe URLs, which now return a placeholder. The licence's attribution statement is required and is registered in the Data attribution popover. By default the 250 cameras nearest Vancouver and Victoria load;CCTV_DRIVEBC_MAX_SOURCESchanges the cap andCCTV_DRIVEBC_ENABLED=0turns the pack off. Some cameras in the feed are supplied by partners (TransLink, the City of Vancouver, the City of Surrey, Parks Canada / Alberta Motor Association and others); the feed's per-camera credit is carried onto the camera record and shown beside the provider in the CCTV panel. - TxDOT ITS cameras. The catalog comes from the keyless
its.txdot.gov/its/DistrictIts/GetCctvStatusListByDistrictendpoint, one call per district. Frames come from the per-cameraGetCctvSnapshotByIcdIdendpoint, which answers JSON carrying a base64 JPEG rather than an image body; the proxy decodes it only for responses from the official TxDOT origin and validates the JPEG header before serving. Only cameras reportingDevice Onlineare registered. Districts default to Austin and San Antonio (CCTV_TXDOT_DISTRICTS; 25 codes exist statewide);CCTV_TXDOT_MAX_SOURCEScaps the pack andCCTV_TXDOT_ENABLED=0turns it off. Frames are fetched live at request time and are never stored or redistributed. - Tallinn ristmikud. Intersection camera stills are fetched live from
ristmikud.tallinn.ee(/last/camNNN.jpg). The curated catalog (config/cctv_sources.tallinn.json) supplies coordinates and heading priors; only server-registered ristmikud HTTPS URLs are proxied. Frames are fetched at request time and never stored or redistributed. Disable withCCTV_TALLINN_ENABLED=0. - Tarktee / Transpordiamet. Estonia road-weather camera locations and current JPEG URLs come from keyless DATEX2 endpoints on
tarktee.transpordiamet.ee(/api/v1/datex/roadCameraLocations+roadCameraImages). Frame URLs rotate with each capture; the 15-minute CCTV source cache refreshes them. Onlyhttps://tarktee.transpordiamet.ee/images/…URLs are registered. Disable withCCTV_TARKTEE_ENABLED=0. - Warendorf webcam. The Stadt Warendorf Marktplatz webcam, registered from the curated
config/cctv_sources.warendorf.json(the Kreis Warendorf registration-office cameras from the contributing PR are indoor waiting rooms and were left out); only the municipal image host is proxied, frames are fetched at request time and never stored or redistributed. Disable withCCTV_WARENDORF_ENABLED=0. - Live Traffic NSW cameras. The camera list is the keyless public
data.livetraffic.com/cameras/traffic-cam.jsonfeed (Transport for NSW open data, CC BY 4.0); frames are stills onwebcams.transport.nsw.gov.au, and only that host is registered. That image host answers non-browser clients with an HTML placeholder, so the proxy identifies as a browser for that one host and as itself everywhere else. Frames are fetched at request time and never stored or redistributed. Disable withCCTV_NSW_ENABLED=0. - Open Calgary traffic cameras. Keyless. The camera list is the public Socrata dataset
k7p9-kppzondata.calgary.ca; frames are stills on the city's owntrafficcam.calgary.cahost, and only that host is registered. Most rows publish anhttp://frame URL and the host redirects those to HTTPS, so URLs are upgraded and pinned to that origin before registration. Frames are fetched at request time and never stored or redistributed. The dataset publishes no camera facing: thequadrantfield and the quadrant suffix on each camera name are Calgary's address grid, not a bearing, so headings use the shared id-hash fallback at low confidence and are corrected with the in-app calibration gizmo. The licence requires the attribution statement above. Disable withCCTV_CALGARY_ENABLED=0. - Camera frame content. Public camera frames can contain people, vehicles and license plates, and the camera layer does nothing with them beyond putting them on the map. A successful upstream response is relayed as the provider served it: nothing in the camera pipeline blurs, redacts, enhances or restores it, and nothing there runs face, plate or object detection or otherwise recognises or classifies what is in the picture. (The ALPR layer described below maps where plate-reader cameras are, from locations contributors tagged in OpenStreetMap; it reads nothing from any camera frame.) When an upstream has no frame for a camera, what you see instead is a Google Street View still or the app's own placeholder card; the panel's source badge names which of them you are looking at, and a refresh that fails after a frame has arrived leaves the last good picture on screen rather than replacing it. The browser resamples each frame for display: onto a fixed 1920x1080 surface for the camera's projection plane in the scene, and onto a 192x108 canvas for the small ambient card. That scaling is the only change made to the picture, and the only pixels the camera layer reads back are a 64x36 downscale hashed to tell whether the picture has changed. Live streams are piped through; the still path reads the image into memory to pass it on — TxDOT wraps its JPEG in a JSON envelope, which is decoded there — and no frame is written to disk (the disk cache,
.gev-cache/, holds feed JSON for other layers and never camera imagery). Outside that pipeline, the voice assistant is the one feature that sends imagery anywhere: when it answers a question about what is in view it may attach a downscaled screenshot of the rendered scene — including any camera plane on screen — to the request it sends to the voice model. Frames are fetched only from server-registered camera URLs — a client cannot hand the proxy a URL (see SECURITY.md). What the app does stays inside the line README draws: no named-person search, no face recognition, no tracking individuals. - Radio Browser.
/api/radio/stationsdiscovers official API mirrors, makes bounded and coalesced healthy/geolocated HTTPS-station queries, caches the normalized public-domain directory for 45 minutes, and may serve the last good catalog for up to seven days during an outage. Refreshes must meet minimum accepted-query and station coverage before replacing a warm catalog; schema-valid responses whose rows all fail the product's health policy do not count as successful queries. A usable partial cold catalog is explicitlyDEGRADED, and malformed or empty successful payloads are rejected atomically. Every directory and click-count request rejects redirects, validates all resolved addresses as globally routable (including reserved/documentation IPv4 and special/non-global IPv6 exclusions), and pins the TLS connection to a validated address. Only MP3/AAC non-HLS directory rows with public HTTPS stream targets are returned; favicons are intentionally omitted. Pressing play connects one browser audio element directly to the selected broadcaster and calls the directory's click counter through known-ID-onlyPOST /api/radio/click/:uuid. GEV never proxies, caches, records, bundles, or redistributes audio. Radio Browser supplies station-level tags, not dependable current-song or upcoming-program metadata, so Radio filtering never claims either. Direct playback exposes the listener's IP address to the broadcaster, whose own stream terms apply. - TomTom Traffic. Optional and BYOK: without
TOMTOM_API_KEYthe traffic layer runs its built-in simulation and no TomTom data (or attribution) appears. With a key, flow vector tiles are fetched through the server-side/api/tomtomproxy (120 s cache + a daily tile-budget governor —TOMTOM_DAILY_TILE_BUDGET, default 40,000, a configurable application safety ceiling, not a guarantee of staying within TomTom's monthly free allowance; TomTom's current pricing lists 200K free tile requests per month) and the "Traffic flow data © TomTom" credit is registered in the Data attribution popover the moment live mode activates. TomTom data is served live and cached only transiently (≤120 s TTL under.gev-cache/, gitignored) — it is not bundled or redistributed. One 23 KB point-in-time tile snapshot is committed as a decode-test fixture (src/data/fixtures/, © TomTom, never served to the app). - Routing (OSRM / FOSSGIS).
/api/routeproxies the public OSRM instances FOSSGIS e.V. runs for the OpenStreetMap community (car, bike, foot profiles). They are keyless and intended for fair, interactive use — the proxy rate-limits clients (60/min, 200/min total), caps route span and response size, caches each route for 10 minutes, and identifies itself in the User-Agent. Heavy or automated use must run its own OSRM. Routes are computed from OpenStreetMap data (ODbL); the Directions layer and voice routes never redistribute them. A route the router cannot find is reported as such; the Directions layer draws nothing in that case, and voice routes fall back to a clearly labeled straight line. - Re:Earth Terrain. Keyless (no API key). Used two ways: (1)
src/mapStackController.jsswaps in aCesium.CesiumTerrainProviderpointed at Re:Earth'scesium-mesh/ellipsoidquantized-mesh endpoint for globe stacks without a Cesium ion token (e.g. OSM), replacing a flatEllipsoidTerrainProvider; falls back to the flat provider if the endpoint can't be reached. (2) The server-side/api/terrain/heightsproxy (disk-cached, serve-stale) resolves per-point ellipsoidal ground height for entity placement. Both are best-effort with a keyless-safe fallback (bundled EGM96 geoid math) if Re:Earth is unreachable. - OSRM on the FOSSGIS routing servers. Keyless (no API key). Every route is requested by a person: clicking A and B in the Directions layer, or a voice "route from A to B". The server-side
/api/routeproxy sends an identifyingUser-Agent, pins the upstream host, accepts 2-12 coordinates, rejects any leg over 600 km or a total over 2,500 km, caps the buffered response at 8 MB, times the upstream out at 12 s, rate-limits per client, caches each route for 10 minutes, and coalesces identical requests that are in flight at the same time. Turn-by-turn maneuvers are asked for only when a caller wants them (steps=1), so the callers that do not read them send the smaller request. The "fix the map" link the policy asks for is in the Data attribution popover beside the OpenStreetMap credit. - Global Context installation context.
/api/military-installationsqueries only an allow-listed subset of OSMmilitary=*andlanduse=militaryfeatures inside a maximum 10° non-dateline viewport. It caches and may serve stale mapped context, but it is neither a global installation database nor evidence of capability, activity, or absence. User-requested Google Places results remain separately sourced candidates unless their returned types explicitly establish military classification; generic offices, museums, and similarly ambiguous matches are excluded from military proximity counts. - Place search. Named-place fly-to uses Google Geocoding when a Maps key is configured, then Photon's public instance, then
/api/geocode(Nominatim search) when neither answers./api/geocodeshares the cockpit's Nominatim queue at no more than one request per second, sends an identifyingUser-AgentandReferer, caches answers for five minutes, shares one upstream call between identical searches already in flight, bounds the queue so a burst is refused rather than held, and drops a queued search whose caller has given up. It asks for one result per search and is not used for systematic or bulk queries. - Cockpit regional briefing.
/api/regional-briefrounds aircraft coordinates into 0.1° cache cells, caches results for five minutes, and serializes Nominatim calls at no more than one request per second. Google News RSS is queried with the resolved locality/region first; GDELT is used only when that RSS query fails or is empty. Google's published Google News terms restrict that source to personal, noncommercial use, so commercial deployments must disable/replace it or obtain separate permission; GDELT permits commercial dataset use with citation. The Data attribution popover identifies the active headline sources; article links retain publisher attribution. Headlines are location-query matches, not verified incidents, risk rankings, or evidence that a location is safe. Empty, partial, stale, and unavailable source states remain distinct. Open-Meteo supplies current conditions independently of the news source.WX OFFdisables cockpit weather rendering only; the Local Info briefing still fetches its source-backed weather values and displays the required linked Open-Meteo credit. - Dynamic weather presentation. While cockpit mode is active,
/api/weather-effectsrequests current Open-Meteo observations for the aircraft/camera location, rounds coordinates into 0.1° cache cells, caches results for five minutes, and may retain a stale observation for up to 30 minutes during a transient outage. WMO condition code selects the visual family; observed cloud cover, precipitation, visibility, wind speed, and wind direction bound its strength and motion. Missing or expired weather renders no synthetic atmospheric effect, and normal globe view never renders the weather overlay.
Static datasets shipped in the repo for an out-of-the-box experience. None are MIT — each keeps its own license (see the carve-out in LICENSE). Each folder also has its own provenance README.
| Dataset | Folder | License | Commercial use? | Attribution |
|---|---|---|---|---|
| Datacenters (~4.3K) | datacenters/ |
ODbL 1.0 (OpenStreetMap extract) | ✅ (attribution + share-alike on data) | "© OpenStreetMap contributors" |
| Dams (704) | dams/ |
ODbL 1.0 (OpenInfraMap / OSM extract) | ✅ (attribution + share-alike on data) | "© OpenStreetMap contributors" (+ Open Infrastructure Map) |
| TeleGeography Submarine Cable Map (712 cables + 1,917 landing points) | telegeography_submarine_cables/ |
CC BY-NC-SA 3.0 | ❌ NonCommercial — remove for commercial use | "© TeleGeography — submarinecablemap.com" |
| Natural Earth physical regions (1,046 land + 292 marine named polygons) | natural_earth/ |
Public domain | ✅ (no restrictions) | "Made with Natural Earth" (courtesy credit — not legally required) |
| DataSF Analysis Neighborhoods (41 SF neighborhood polygons) | neighborhoods/ |
PDDL 1.0 (public domain) | ✅ (no restrictions) | "City & County of San Francisco — DataSF" (courtesy — not legally required) |
| CCTV ground heights (3,445 cameras) | cctv_ground_heights/ |
Precomputed camera placement heights, aligned to work with Google Photorealistic 3D Tiles (folder README) | — | — |
The submarine-cable GeoJSON is CC BY-NC-SA 3.0 (Attribution-NonCommercial-ShareAlike). It is bundled so the cables layer works out of the box, but it is not covered by this project's MIT license. CC BY-NC-SA permits redistribution with attribution and share-alike — which is exactly how it ships here — but the NonCommercial clause means:
If you use God's Eye View commercially, delete
src/data/local_data/telegeography_submarine_cables/(or obtain a commercial license from TeleGeography). It is one self-contained folder; the rest of the app runs without it.
The richer structured dataset is licensed separately/commercially by TeleGeography.
The optional ALPR layer queries OpenStreetMap nodes tagged man_made=surveillance
and surveillance:type=ALPR (including case-insensitive semicolon multi-values)
through the shared Overpass proxy. Source/tag reference:
OSM ALPR tagging.
No DeFlock software, branded assets or separate database is bundled. The layer
shows contributor-supplied locations and tags, not plate records, camera video,
current operating status, or exhaustive coverage. All manufacturers share the
ALPR category and marker color. Manufacturer, operator and camera type are shown
only when tagged, not inferred or independently verified. Every selected card
names OpenStreetMap in a smaller, muted source line beneath those details.
Queries are limited to a city-scale viewport (at most 3° per axis), at most 1,500 returned nodes, with outward-snapped query reuse and explicit stale/limited coverage notices. A linked © OpenStreetMap credit appears for five seconds when camera locations first display after enabling, then collapses; Data attribution retains the full source/license entry, following the OSMF interactive-map guidance. OSM data remains separately attributed under ODbL; querying at runtime does not replace the license obligations. ODbL permits commercial use and does not license the application code. If publicly using a derivative database, follow its share-alike and access requirements; keep independent datasets separate rather than treating the whole collection as MIT data. Overpass hosting capacity and usage policies are separate from the data license.
The OSM-derived datasets are under the Open Database License. ODbL's share-alike applies to the data / derived database, not this MIT-licensed code — the two coexist (exactly how Open Infrastructure Map ships: MIT software + ODbL data). If you publicly distribute a modified version of these databases, you must offer it under ODbL. Keep the "© OpenStreetMap contributors" notice (link: https://www.openstreetmap.org/copyright).
We acknowledge the use of data and/or imagery from NASA's Fire Information for Resource Management System (FIRMS) (https://earthdata.nasa.gov/firms), part of NASA's Earth Observing System Data and Information System (EOSDIS).
FIRMS active fires are fetched live at runtime (CC0 / U.S. public domain data): the
/api/firms server-side proxy merges the three VIIRS NRT sources (NOAA-20, NOAA-21,
Suomi-NPP) clamped to the trailing 24 h, cached 30 min to respect the shared MAP_KEY
transaction quota. Requires a free FIRMS_MAP_KEY
(https://firms.modaps.eosdis.nasa.gov/api/map_key/); the layer is empty without it.
The former bundled 2026-05-25 snapshot was removed 2026-07-16.
Curated from the Natural Earth 10m physical vectors (https://www.naturalearthdata.com/ —
fetched from the canonical nvkelso/natural-earth-vector GitHub repo, commit
ca96624a56bd078437bca8184e78163e5039ad19, 2026-07-28): ne_10m_geography_regions_polys
(mountain ranges, deserts, plateaus, peninsulas, islands, …) → regions.json and
ne_10m_geography_marine_polys (seas, gulfs, straits, bays) → marine.json. They back the
voice-annotation resolver's named-natural-region lookup (src/data/naturalEarthRegions.js),
so "outline the Alps" draws the real range polygon offline.
Curation (provenance in each file's meta header): named features only, outer rings only,
Douglas-Peucker simplified at ~0.01° with coordinates rounded to 3 decimals, sub-20 km²
MultiPolygon crumbs and zero-area sliver artifacts dropped (7.3 MB source → 2.5 MB pack).
Natural Earth is public domain (no permission needed, no attribution legally required —
https://www.naturalearthdata.com/about/terms-of-use/). We credit anyway: "Made with Natural
Earth". Registration in the in-app dataCredits.js attribution list ships with the resolver
wiring (see below).
neighborhoods/san-francisco.json bundles the City & County of San Francisco's official
"Analysis Neighborhoods" dataset (41 neighborhood polygons; DataSF dataset j2bu-swwd,
catalog map view
p5b7-5n3h).
It backs the voice-annotation resolver's offline neighborhood-boundary lookup
(src/data/neighborhoodPolygons.js), so "outline Chinatown" draws the city's real
boundary polygon with no network dependency.
The dataset is licensed PDDL 1.0 (Open Data Commons Public Domain Dedication and
License — public domain; the DataSF metadata declares licenseId: "PDDL"). No attribution
is legally required; we note the source here and in the folder's SOURCE.md, which records
the retrieval date (2026-07-30), exact download URL, license evidence, and the
deterministic transform (scripts/build-sf-neighborhoods.mjs: nhood → name, ~2 m
Douglas-Peucker simplification, 6-decimal rounding).
The required Google Maps / Cesium credit renders on the on-globe credit line (#cesium-credits, bottom-left) and must stay visible — including in clean-view and recording modes (the whole line, logo + "Google Maps" + the "Data attribution" link, stays on screen; only the GEV panels/HUD fade). The layer-specific credits (adsb.lol, TeleGeography, OSM datacenters/dams/roads, NASA FIRMS, CelesTrak, USGS, City of Austin, Fintraffic, GBFS, Radio Browser, OpenSky, AISStream) are registered into the expandable "Data attribution" popover on that credit line via viewer.creditDisplay.addStaticCredit(new Cesium.Credit(html, /* showOnScreen */ false)) — see src/data/dataCredits.js. When you add a new data source, add its license and attribution to this file and append an entry to DATA_CREDITS in src/data/dataCredits.js so it surfaces in the app.