cesiumgs/cesiumjs-skills/cesiumjs-imagery
Claude Code and agent skill by cesiumgs/cesiumjs-skills
- community
- ext:[{"type":"plugin","description":"Custom plugin integration"}]
Checking that the SKILL.md file is still in the repository.
CesiumJS imagery layers - ImageryProvider, ImageryLayer, ImageryLayerCollection, WMS, WMTS, Bing, OpenStreetMap, ArcGIS, Mapbox, tile discard policies. Use when adding or swapping base map layers, configuring imagery providers, layering multiple map sources, or creating split-screen imagery comparisons.
Install
npx vskill@latest install cesiumgs/cesiumjs-skills/cesiumjs-imagerySemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
CesiumJS Imagery Layers
CesiumJS v1.144 -- Imagery providers supply raster tile data rendered on the Globeor draped over a Cesium3DTileset. The three core abstractions are ImageryProvider(fetches tiles), ImageryLayer (display settings), andImageryLayerCollection (ordered stack on the globe).
Layers render bottom-to-top. Index 0 is the base layer, stretched to fill the globe even if its rectangle does not cover the entire world.
Quick Start and ImageryLayer Factories
When creating a viewer for imagery work, disable unneeded widgets so the imagery is the visual focus. Use camera.setView (not flyTo) when you need the camera in position immediately — flyTo animates and may not finish before your code continues.
Use IonImageryProvider and ImageryLayer.fromWorldImagery only when the runtime has the required Cesium ion entitlement. For public/no-token examples, prefer OpenStreetMap, ArcGIS, NASA GIBS, WMS, WMTS, or URL-template providers.
Camera Height Reference for Imagery Scenes
Use camera.setView with these approximate heights:
| Scale | Height (m) | Example | |
|---|---|---|---|
| Street / block | 500–2,000 | Downtown intersection | |
| City | 5,000–25,000 | Washington DC, Paris | |
| Metro area | 50,000–200,000 | Greater London | |
| Region / state | 300,000–1,500,000 | Florida, Japan | |
| Continent | 3,000,000–8,000,000 | Europe, North America |
For top-down (map-style) views set pitch: CesiumMath.toRadians(-90). For oblique 3D views set pitch: CesiumMath.toRadians(-35) to CesiumMath.toRadians(-60).
Default to top-down framing when a scenario names a specific country, city, or region. It keeps the named feature centered without perspective skew. Oblique high-altitude views can easily show a neighboring landmass because the target falls outside the view frustum.
Framing Reference for Named Places
Frame named places by their actual longitude and latitude, not a nearby guess. Use camera.setView with Cartesian3.fromDegrees(lon, lat, height) and a top-down pitch unless the prompt explicitly asks for an oblique view.
| Place | lon, lat | Suggested height | |
|---|---|---|---|
| London | -0.12, 51.50 | 60,000 | |
| Paris | 2.35, 48.86 | 30,000 | |
| New York City | -74.00, 40.71 | 60,000 | |
| New York-Boston corridor | -72.5, 41.5 | 800,000 | |
| Washington DC, National Mall | -77.03, 38.89 | 25,000 | |
| Florida peninsula | -81.5, 28.0 | 1,500,000 | |
| Grand Canyon | -112.5, 36.3 | 200,000 | |
| Hawaiian Islands | -157.0, 20.5 | 1,800,000 | |
| Iceland | -19.0, 64.9 | 1,200,000 | |
| Italy peninsula | 12.5, 42.0 | 2,500,000 | |
| Southern Europe split view | 13.0, 42.0 | 4,500,000 | |
| Greenland | -42.0, 72.0 | 5,000,000 | |
| Japan, Honshu | 138.0, 36.5 | 2,500,000 |
ImageryLayerCollection API
Access via viewer.imageryLayers (same as viewer.scene.imageryLayers).
Events: layerAdded(layer, index), layerRemoved(layer, index), layerMoved(layer, newIndex, oldIndex), layerShownOrHidden(layer, index, show).
ImageryLayer Display Properties
Properties accept a number or a per-tile callback (frameState, layer, x, y, level) => value.
| Property | Default | Notes | |
|---|---|---|---|
alpha | 1.0 | 0 = transparent, 1 = opaque | |
brightness | 1.0 | < 1 darker, > 1 brighter | |
contrast | 1.0 | < 1 lower, > 1 higher | |
hue | 0.0 | Shift in radians | |
saturation | 1.0 | < 1 desaturated, > 1 oversaturated | |
gamma | 1.0 | Gamma correction | |
show | true | Visibility toggle | |
splitDirection | SplitDirection.NONE | LEFT, RIGHT, or NONE | |
nightAlpha / dayAlpha | 1.0 | Requires Globe.enableLighting |
Additional options: rectangle, minimumTerrainLevel / maximumTerrainLevel, cutoutRectangle, colorToAlpha / colorToAlphaThreshold, minificationFilter / magnificationFilter (LINEAR default, or NEAREST).
Swapping the Base Layer
Remove the default base layer and replace it at index 0. The replacement becomes the new base layer, stretched to fill the globe.
Choosing a Visible Light Basemap
When a scenario asks for a light or everyday basemap, do not use night-lights, dark-canvas, or satellite-night tiles as the base layer. Those render as mostly black pixels and visibly fail the requirement. Reliable public light basemaps:
- OpenStreetMap (
https://tile.openstreetmap.org/) - Carto Positron (
https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png) - ArcGIS World Street Map / World Topographic
- USGS Shaded Relief (WMTS)
Reserve VIIRS_CityLights_2012, BlackMarble, and CANVAS_DARK for overlays on top of a light base, or for scenes that explicitly call for a night view.
Imagery Providers
IonImageryProvider
Requires Cesium ion asset access. Do not use in public/no-token examples unless the caller explicitly asks for an ion imagery asset.
OpenStreetMapImageryProvider
Extends UrlTemplateImageryProvider for Slippy tile servers.
UrlTemplateImageryProvider
The most flexible provider. Placeholders: {x}, {y}, {z}, {s}, {reverseX/Y/Z}, {west/south/east/northDegrees}, {west/south/east/northProjected}, {width}, {height}.
WebMapServiceImageryProvider (WMS)
WebMapTileServiceImageryProvider (WMTS)
Required options: url, layer, style, tileMatrixSetID.
GetFeatureInfo (1.140+, #13196): WebMapTileServiceImageryProvider now supports pickFeatures for both KVP and RESTful WMTS services. Enable it with the new constructor options enablePickFeatures, getFeatureInfoFormats, getFeatureInfoUrl, and getFeatureInfoParameters; then call provider.pickFeatures(x, y, level, longitude, latitude) (the same signature WMS uses) to query attributes at a location.
ArcGisMapServerImageryProvider
BingMapsImageryProvider
Styles: AERIAL, AERIAL_WITH_LABELS_ON_DEMAND, ROAD_ON_DEMAND, CANVAS_DARK, CANVAS_LIGHT, CANVAS_GRAY.
MapboxStyleImageryProvider
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/cesiumjs-imagery/SKILL.md
Popularity
- Repository stars
- 76
- Repository forks
- 10
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 30 May 2026, 5 months ago.
Extension points
pluginCustom plugin integration
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/cesiumgs/cesiumjs-skills/cesiumjs-imagery)