Cesium Utils - v0.2.6
    Preparing search index...

    Cesium Utils - v0.2.6

    Cesium Utils

    npm version License: MIT Documentation Build Status

    Solve common Cesium.js development challenges with utilities that provide hybrid terrain providers, entity collection tagging, and visual highlighting systems.

    Problem: Cesium only supports one terrain provider at a time, but you need to combine multiple terrain sources.
    Solution: HybridTerrainProvider seamlessly blends different terrain providers for different geographic regions.

    Problem: Cesium's EntityCollection lacks built-in tagging and filtering capabilities for large datasets.
    Solution: Collection class adds powerful tagging, filtering, and grouping to entity collections.

    Problem: No built-in way to highlight selected entities with silhouettes or surface effects.
    Solution: SilhouetteHighlight and SurfaceHighlight provide professional visual highlighting systems.

    📚 API Documentation | 📦 NPM Package | ▶️ Demonstration

    npm install @juun-roh/cesium-utils cesium
    

    Combine multiple terrain sources for different regions:

    import { HybridTerrainProvider } from "@juun-roh/cesium-utils";

    // set region from zoom level and tile coordinates
    const provider = TerrainProvider.fromUrl("your-terrain-url");
    const tiles: HybridTerrainProvider.TerrainRegion["tiles"] = new Map();
    tiles.set(13, {
    x: [13963, 13967],
    y: [2389, 2393],
    });

    const region: HybridTerrainProvider.TerrainRegion = {
    provider,
    tiles,
    };

    const terrainProvider = new HybridTerrainProvider({
    regions: [
    region,
    ],
    defaultProvider: worldTerrain
    });

    viewer.terrainProvider = terrainProvider;

    Tag and filter entities efficiently:

    import { Collection } from "@juun-roh/cesium-utils";

    const buildings = new Collection(viewer.entities, "buildings");
    const parks = new Collection(viewer.entities, "parks");

    // Add tagged entities
    buildings.add({ position: coords, model: buildingModel });
    parks.add({ position: coords, polygon: parkPolygon });

    // Filter and manipulate by tag
    buildings.show = false; // Hide all buildings
    parks.forEach(entity => entity.polygon.material = Color.GREEN);

    Add professional visual highlights:

    import { SilhouetteHighlight } from "@juun-roh/cesium-utils";

    const highlight = new SilhouetteHighlight(viewer, {
    color: Color.YELLOW,
    size: 2.0
    });

    // Highlight an entity
    highlight.add(selectedEntity);
    Feature Module Use Case
    HybridTerrainProvider terrain Combine multiple terrain sources by region
    Collection collection Tag, filter, and group entity collections
    SilhouetteHighlight highlight Add silhouette effects to entities
    SurfaceHighlight highlight Add surface glow effects to entities
    cloneViewer viewer Duplicate viewer configurations
    syncCamera viewer Synchronize camera positions between viewers
    npm install @juun-roh/cesium-utils cesium
    yarn add @juun-roh/cesium-utils cesium
    pnpm add @juun-roh/cesium-utils cesium

    Tree-shakable imports (recommended for smaller bundles):

    // Import specific modules
    import { HybridTerrainProvider } from "@juun-roh/cesium-utils/terrain";
    import { Collection } from "@juun-roh/cesium-utils/collection";
    import { SilhouetteHighlight } from "@juun-roh/cesium-utils/highlight";

    Convenience imports:

    // Import everything
    import { Collection, HybridTerrainProvider, SilhouetteHighlight } from "@juun-roh/cesium-utils";

    ESM and CommonJS support - works in browsers and Node.js environments.

    For development and testing purposes, this library provides additional utilities through the /dev module. These utilities include deprecation warnings, terrain visualization helpers, and type checking functions.

    // Import development utilities (not part of main API)
    import { Deprecate, TerrainVisualizer, isGetterOnly } from "@juun-roh/cesium-utils/dev";

    Note: These utilities are intentionally not exported from the main package as they are primarily intended for development, testing, and advanced terrain configuration.

    For detailed usage and examples, see Development Utilities Documentation.

    # Install dependencies
    pnpm install

    # Build
    pnpm build

    # Run tests
    pnpm test

    Working on the demonstration at Cesium Utils Demo.

    Run a local live demonstration where you can see changes directly by:

    pnpm dev
    

    Generate API documentation:

    pnpm typedoc
    

    MIT © Juun