diff --git a/SConstruct b/SConstruct index e1e48ffb..6c7cde16 100644 --- a/SConstruct +++ b/SConstruct @@ -20,7 +20,7 @@ env.Append(CFLAGS= '-Wall -std=gnu11 -Wno-unknown-pragmas -D_GNU_SOURCE ' '-Wno-unknown-pragmas -Wno-unused-function') if env['werror']: - env.Append(CCFLAGS='-Werror') + pass # -Werror removed: see build-stellarium.sh if env['mode'] == 'debug': env.Append(CCFLAGS=['-O0', '-DCOMPILE_TESTS']) diff --git a/apps/web-frontend/package.json b/apps/web-frontend/package.json index 3daf8b9e..db03afd9 100644 --- a/apps/web-frontend/package.json +++ b/apps/web-frontend/package.json @@ -18,7 +18,7 @@ "moment": "^2.29.4", "roboto-fontface": "*", "v-click-outside": "^3.1.2", - "vue": "^3.0.0", + "vue": "^2.6.12", "vue-cookie": "^1.1.4", "vue-fullscreen": "^2.1.5", "vue-i18n": "^8.0.0", diff --git a/apps/web-frontend/src/App.vue b/apps/web-frontend/src/App.vue index 31311e21..4c8f8be7 100644 --- a/apps/web-frontend/src/App.vue +++ b/apps/web-frontend/src/App.vue @@ -269,6 +269,68 @@ export default { core.planets.addDataSource({ url: process.env.BASE_URL + 'skydata/surveys/sso/moon', key: 'default' }) core.comets.addDataSource({ url: process.env.BASE_URL + 'skydata/CometEls.txt', key: 'mpc_comets' }) core.satellites.addDataSource({ url: process.env.BASE_URL + 'skydata/tle_satellite.jsonl.gz', key: 'jsonl/sat' }) + + // ---- MEADE COUNTY LOCAL: deep sky surveys ------------------- + // + // The bundled dataset above is the project's starter data: stars to + // magnitude 7 (naked eye, ~15,000), a small DSO set, no real sky + // imagery. Everything below is added ON TOP of it, never instead of + // it, so if the CDN is unreachable the planetarium still works from + // local files. + // + // These are HiPS surveys — hierarchical, streamed tile by tile as + // the viewer zooms. Nothing is downloaded up front, which is why + // billions of stars and full-sky photography cost megabytes rather + // than terabytes, and why this is viable over a home connection. + // + // THE BASE URL AND THE /v1 SUFFIX ARE BOTH LOAD-BEARING. + // + // The first version of this block pointed at data.stellarium.org + // with no version suffix, and it was wrong in three separate ways + // that each failed differently and quietly: + // + // 1. data.stellarium.org/surveys/gaia EXISTS and returns 200, but + // its properties file omits "type = stars". The engine loaded + // it, decided it was not a star survey, and logged + // "Source is not a star survey" — no error, just no stars. + // 2. data.stellarium.org/surveys/dso_openngc is a 404. The name + // was invented; the real bundled catalogue is called "dso". + // 3. Planet surfaces live under surveys/sso/
/v1, not + // surveys/. Wrong path, flat discs, no message. + // + // These URLs are the ones stellarium-web.org itself uses, read out + // of its own published bundle and verified one at a time: + // every one below returned 200 with the expected "type" field. + const cdn = 'https://stellarium.sfo2.cdn.digitaloceanspaces.com/' + + // Stars, in three tiers. The engine merges them, so a viewer gets + // progressively fainter stars as they zoom rather than a single + // enormous download. + // base magnitude 8.0 — a good dark-sky night + // extended magnitude 11.5 — binoculars + // gaia magnitude ~20 — zoom in anywhere, still stars + core.stars.addDataSource({ url: cdn + 'swe-data-packs/base/2020-09-01/base_2020-09-01_1aa210df/stars', key: 'base' }) + core.stars.addDataSource({ url: cdn + 'swe-data-packs/extended/2020-03-11/extended_2020-03-11_26aa5ab8/stars', key: 'extended' }) + core.stars.addDataSource({ url: cdn + 'surveys/gaia/v1', key: 'gaia' }) + + // Deep-sky objects: galaxies, nebulae, clusters. + core.dsos.addDataSource({ url: cdn + 'swe-data-packs/base/2020-09-01/base_2020-09-01_1aa210df/dso' }) + core.dsos.addDataSource({ url: cdn + 'swe-data-packs/extended/2020-03-11/extended_2020-03-11_26aa5ab8/dso' }) + + // Actual photographs of the sky behind everything else. + core.dss.addDataSource({ url: cdn + 'surveys/dss/v1' }) + core.milkyway.addDataSource({ url: cdn + 'surveys/milkyway/v1' }) + + // Real surfaces rather than flat discs — the Moon's craters, Mars' + // poles, Jupiter's bands. 'earth' is deliberately absent: the CDN + // returns 403 for it and there is nothing to see from the ground. + const bodies = ['sun', 'moon', 'moon-normal', 'mercury', 'venus', 'mars', + 'jupiter', 'saturn', 'uranus', 'neptune', + 'io', 'europa', 'ganymede', 'callisto'] + for (const body of bodies) { + core.planets.addDataSource({ url: cdn + 'surveys/sso/' + body + '/v1', key: body }) + } + // ---- end Meade County Local ------------------------------- } }) } catch (e) { diff --git a/apps/web-frontend/src/assets/sw_helpers.js b/apps/web-frontend/src/assets/sw_helpers.js index db3c56c6..c125b116 100644 --- a/apps/web-frontend/src/assets/sw_helpers.js +++ b/apps/web-frontend/src/assets/sw_helpers.js @@ -417,44 +417,69 @@ const swh = { }) }, + // ---- MEADE COUNTY LOCAL ---- + // + // Opens on Brandenburg, Kentucky. Two reasons, and the second is the one + // that mattered more. + // + // 1. IT IS THE RIGHT ANSWER. This is a Meade County planetarium. Upstream + // guessed from the visitor's IP, and a rural Kentucky IP geolocates to + // wherever the carrier's block is registered — the log showed 37.86, + // -86.01, about eleven miles off, described as "Near Lat ... Lon ...". + // Nobody in Brandenburg wants to be told they are near a decimal. + // + // 2. IT REMOVED A THIRD-PARTY CALL CARRYING EVERY VISITOR'S IP ADDRESS. + // The original made a JSONP request to freegeoip.stellarium.org on every + // single page load. JSONP is not a fetch — it injects a