Repository navigation
feat(cesium): situation scenes with milsymbol, station fleet and heat worker - #73
Merged
Merged
Conversation
… worker
- Situation rebuilt on a deterministic maritime/air model (zones, six
formation templates, 61 tracks, offline zone events streamed live):
MIL-STD-2525C symbols via milsymbol, shared affiliation palette,
keyframe camera tour; TimeDeck binds all six scenes to viewer.clock
- GeoHash gains a synthetic 8000-station fleet (34 provincial clusters,
fixed seed); Heatmap computes the field in a Web Worker and renders
an ImageData LUT with d3-contour isolines; Trajectory flies an
Apache-2.0 glTF patrol aircraft with a billboard fallback
- basemap chain without an ion token: graded ("night") OSM default,
pixel-checked probe upgrades to CartoDB Dark Matter, AMap raster as
the last fallback; failures observed per current provider with
network- and HTTP-level signals de-duplicated into one threshold
- six pages rewritten on the shared SceneStage/onReady lifecycle;
/map/cesium becomes an in-page scene shell (Segmented + Outlet);
deps: milsymbol 3.0.4, mgrs 2.2.0
- add https://*.basemaps.cartocdn.com to img-src and connect-src in config/csp.ts (single source) and the nginx, vercel and Cloudflare-style _headers copies, which the consistency test compares directive by directive - sync the provenance comments to the token-less basemap chain: graded OSM -> carto probe upgrade -> AMap fallback, so the nginx copy no longer claims "only HTTPS OSM without a token"
- e2e: the basemap failure test also blocks *.autonavi.com (the AMap fallback answered 200 with permissive CORS, so the failure banner never appeared and the test timed out); fixtures' third-party console whitelist includes basemaps.cartocdn.com - size budget: publicMB 4 -> 4.5 with the measured 3.82 MB public total and rationale recorded (the 586 KB Apache-2.0 glTF pushed it over the old 3.8 MB headroom line); gate script comment updated - CHANGELOG: record the Cesium situational-scenes batch and the 2026-10-19 review-fix round; demo-script troubleshooting describes the three-level basemap chain instead of "check OSM"
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 31 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Jerry-CodeHub
left a comment
Owner
There was a problem hiding this comment.
本 PR 替代误合进 refactor/top-nav-shell 的 #72,内容完全相同(同样 3 个提交、45 个文件,+5001/−1130)。我在 #72 的 review 里提的 6 条意见都还没处理,下面只列状态,细节见那条 review。
- 【阻塞 CI】check 仍然失败:
lifecycle.test.tsx报Cannot find module 'Cesium'(cesium-navigation-es6的 UMD 构建写的是require("Cesium"),Linux 区分大小写),还没修。因此 build 和 e2e 一直被跳过,这批改动在 Linux 上还没跑过构建和 e2e。另外,即使修好这一条,Coverage gate 里capabilityModel.test.ts也会超时(见 #74 的 review),要等那边修好才会全绿。 - 【中】 OSM 探针用
cache: 'no-store',浏览器会自动发送 no-cache 请求头,违反 OSM 瓦片使用政策:未处理。 - 【中】 ion 链路的 HTTP 层错误监听不生效(provider 异步创建),token 失效时既不回落 OSM 也不显示横幅:未处理。
- 【中】
cesium:osm:dead只要判定一次,整个会话都直接走高德瓦片,重试也不会重新探测 OSM:未处理。 - 【低】
docs/demo/demo-script.md里的_.basemaps.cartocdn.com是 Prettier 把通配符改写成了_:未处理。 - 【nit】
dataset.cesiumSwaps在没有换层时会写入字符串"undefined":未处理。
补充一点:#71 已经上线,master 上六个 Cesium 页的描述文案写的是本 PR 的功能。本 PR 合入之前,线上页面和描述对不上。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
situationModel.ts: core/warning/watch zones, six formation templates, 61 tracks, offline zone enter/exit events streamed live): MIL-STD-2525C symbols via milsymbol, shared affiliation palette, keyframe camera tour; TimeDeck binds all six scenes toviewer.clock(play/pause, speed, scrub)*.basemaps.cartocdn.comin img-src/connect-src across all four deployment copies/map/cesiumbecomes an in-page scene shell (Segmented + Outlet, third menu level dissolved); deps:milsymbol3.0.4,mgrs2.2.0Review context
Reviewed by a multi-dimension agent pass + adversarial verification, then a fix round (recorded as the "Review fixes (2026-10-19)" CHANGELOG section): 41/45 findings fixed here, including GeoHash's dead click-flyTo (stale
onReadyclosure), Direction targets vanishing past 1200 s (now analyticCallbackPositionProperty), stretched milsymbol canvases and invalid SIDC affiliations, the AMap fallback being unobservable, and the false failure banner when carto had taken over. Known follow-ups (not blocking): first-paint race where a late successful layer swap doesn't clear the banner, no 429/5xx tolerance in the basemap e2e all-200 assertion, one "East Sea" wording inen-US/pages.ts, no direct unit test for the two-viewer fetch-patch refcount.Budget
publicMB4 → 4.5: public measured 3.82 MB with the 586 KB glTF, over the old 3.8 MB headroom line; rationale recorded insize-budget.json.Tests
symbols(SIDC validity + real canvas dimensions),fieldModel(row orientation contract, cos(lat) distance vs haversine),situationModel(enter/exit pairing, determinism),stationFleet(weight proportionality, tiny counts),routeNav, palette/GroupNav/a11y;lifecycle.test.tsxcovers the provider host filter and HTTP-level provider errors*.autonavi.com; fixtures whitelist cartocdn console noise