@juun-roh/cesium-utils
v0.4.0
Published
Solve common Cesium.js challenges: combine multiple terrain sources, tag and filter entity collections, and add visual highlights.
Maintainers
Keywords
Readme
Cesium Utils
TypeScript utility library for Cesium.js providing hybrid terrain providers, entity collection tagging, and visual highlighting systems.
Note: The
HybridTerrainProviderfrom this library is submitted to Cesium (#12822).
📚 Documentation • 📦 NPM • ▶️ Demo
Installation
npm install @juun-roh/cesium-utils cesiumUsage
HybridTerrainProvider
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;Collection
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 buildingsEntity Highlighting
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);Modules
| 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 |
Import Options
// 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";Development
pnpm install # Install dependencies
pnpm build # Build library
pnpm test # Run tests
pnpm dev # Start demo serverDevelopment Utilities
Additional utilities for advanced usage:
import { Deprecate, TerrainVisualizer, isGetterOnly } from "@juun-roh/cesium-utils/dev";Experimental Features
⚠️ 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());License
MIT © Juun
