Add a map-level debug flag for Cesium maps#2808
Merged
Merged
Conversation
When enabled, the Cesium widget now shows tile/grid debug imagery, an FPS counter, a camera position overlay, and layer debug logging. This also adds a shared fixed-number formatter in Utilities and coverage for the new config and widget behavior. Issue #2807
When enabled, the Cesium widget now renders Cesium's built-in 3D Tiles inspector and lazy-loads the inspector stylesheet through MetacatUI's CSS loader. Issue #2807
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds map-level Cesium debugging controls by introducing a debug flag and a show3DTilesInspector flag on the map configuration model, then wiring those options into CesiumWidgetView to enable built-in Cesium debug overlays and the 3D Tiles inspector (with lazy-loaded inspector CSS).
Changes:
- Add map config defaults and acceptance for
debugandshow3DTilesInspector. - Enable Cesium debug helpers (FPS, grid/tile coordinates, skirts off, camera overlay, layer logging) and optionally render the 3D Tiles inspector with lazy-loaded CSS.
- Add a shared
Utilities.formatFixedNumber()helper plus unit tests for the new behaviors.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| test/js/specs/unit/views/maps/CesiumWidgetView.spec.js | Adds unit tests for debug mode and 3D Tiles inspector rendering/cleanup. |
| test/js/specs/unit/models/maps/Map.spec.js | Adds tests for new map config defaults and config acceptance. |
| test/js/specs/unit/common/Utilities.spec.js | Adds tests for the new numeric formatting utility. |
| src/js/views/maps/CesiumWidgetView.js | Implements debug-mode toggles, camera overlay formatting, inspector rendering, and debug logging hooks. |
| src/js/models/maps/Map.js | Documents and adds defaults for the new map-level config flags. |
| src/js/common/Utilities.js | Introduces formatFixedNumber() helper. |
| src/css/map-view.css | Styles the debug overlay, FPS counter container, and inspector container. |
| src/css/Cesium3DTilesInspector.css | Adds a Cesium inspector stylesheet intended to be lazy-loaded for the 3D Tiles inspector. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Issue #2807 Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Avoid duplicating debug imagery layers and logging if render() is called multiple times in the Cesium Map Issue #2807 Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Member
Author
|
This feature has been tested by @justinkadi who has been using it extensively in a dev instance of MetacatUI. |
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.
This PR adds a map-level
debugas well as ashow3DTilesInspectoroption to Cesium map config.When
debug: trueis set, the Cesium widget now:When
show3DTilesInspector: trueis set, the Cesium widget now:This change does not automatically enable layer-specific Cesium debug flags such as 3D Tiles debug properties passed through
cesiumOptions.It also adds a shared
Utilities.formatFixedNumber()helper and uses it for the camera overlay formatting.To test manually:
Debug mode:
debug: truein its map config.debug: falseor remove the flag and confirm the debug overlays/counter/logging no longer appear.3D Tiles inspector:
show3DTilesInspector: truein its map config.show3DTilesInspectorand confirm the inspector no longer appears.