TypeScript utility library for Cesium.js providing hybrid terrain providers, entity collection tagging, and visual highlighting systems.
Note: The
HybridTerrainProvider
from this library is being integrated into Cesium Core (#12822).
📚 Documentation • 📦 NPM • ▶️ Demo
npm install @juun-roh/cesium-utils cesium
Combine multiple terrain providers for different geographic regions using tile coordinates:
import { HybridTerrainProvider } from "@juun-roh/cesium-utils";
const tiles = new Map();
tiles.set(13, { x: [13963, 13967], y: [2389, 2393] });
const terrainProvider = new HybridTerrainProvider({
regions: [{
provider: await CesiumTerrainProvider.fromUrl("custom-terrain-url"),
tiles
}],
defaultProvider: worldTerrain
});
viewer.terrainProvider = terrainProvider;
Tagged entity collections with filtering capabilities:
import { Collection } from "@juun-roh/cesium-utils";
const buildings = new Collection(viewer.entities, "buildings");
buildings.add({ position: coords, model: buildingModel });
buildings.show = false; // Hide all buildings
Visual highlighting with silhouette and surface effects:
import { SilhouetteHighlight } from "@juun-roh/cesium-utils";
const highlight = new SilhouetteHighlight(viewer, {
color: Color.YELLOW,
size: 2.0
});
highlight.add(selectedEntity);
Module | Description |
---|---|
HybridTerrainProvider |
Combine multiple terrain providers by geographic region |
Collection |
Tagged entity collections with filtering |
SilhouetteHighlight |
Silhouette highlighting effects |
SurfaceHighlight |
Surface glow highlighting effects |
cloneViewer |
Duplicate viewer configurations |
syncCamera |
Synchronize cameras between viewers |
// Tree-shakable imports (recommended)
import { HybridTerrainProvider } from "@juun-roh/cesium-utils/terrain";
import { Collection } from "@juun-roh/cesium-utils/collection";
import { SilhouetteHighlight } from "@juun-roh/cesium-utils/highlight";
// Main package imports
import { Collection, HybridTerrainProvider, SilhouetteHighlight } from "@juun-roh/cesium-utils";
pnpm install # Install dependencies
pnpm build # Build library
pnpm test # Run tests
pnpm dev # Start demo server
Additional utilities for advanced usage:
import { Deprecate, TerrainVisualizer, isGetterOnly } from "@juun-roh/cesium-utils/dev";
⚠️ Warning: Experimental features use Cesium's internal APIs and may break in future versions.
import Sunlight from "@juun-roh/cesium-utils/experimental/sunlight";
const sunlight = new Sunlight(viewer);
const result = sunlight.analyze(point, JulianDate.now());
MIT © Juun