1. Supported Actions

The plugin supports a comprehensive set of actions that can be triggered by user interactions:

1.1. Navigation Actions

1.1.1. Viewpoint Navigation

Navigate the camera to specific locations in 3D space.

Type: viewpoint

Capabilities:

  • Single viewpoint jumps

  • Viewpoint chaining for guided tours

  • Configurable animation duration and easing functions

  • Support for linear, spline, and other movement types

  • Precise camera positioning with heading, pitch, and roll control

Configuration example:

{
  "id": "viewpoint-example",
  "type": "viewpoint",
  "viewpoint": {
    "distance": 533.79,
    "groundPosition": [13.37551, 52.5096, 35.24079],
    "heading": 263.71,
    "pitch": -44.86,
    "roll": 0,
    "animate": true,
    "duration": 4,
    "easingFunctionName": "LINEAR_NONE"
  }
}

1.1.2. Flight Paths

Execute pre-recorded flight paths for cinematic camera movements.

Type: flight

Capabilities:

  • Import GeoJSON flight files generated by VC Map’s flight widget

  • Smooth camera movements along defined paths

  • Automatic flight playback control

  • Integration with VC Map’s flight system

Configuration example:

{
  "id": "flight-demo",
  "type": "flight",
  "flightUrl": "path/to/flight.json"
}

1.1.3. Camera Rotation

Rotate the camera around a fixed viewpoint for 360-degree exploration.

Type: rotate

Capabilities:

  • Continuous rotation around a viewpoint

  • Configurable rotation speed to prevent dizziness

  • Start/stop rotation control

  • Maintain focus on points of interest

Configuration example:

{
  "id": "rotate-slow",
  "type": "rotate",
  "timePerRotation": 30000
}

1.2. Layer Management

1.2.1. Layer Activation/Deactivation

Control which map layers are visible during different story sections.

Type: layer

Capabilities:

  • Activate specific layers for story context

  • Deactivate irrelevant layers to reduce visual clutter

  • Switch between different base layers

  • Support for multiple simultaneous layer operations

Configuration example:

{
  "id": "layer-switch",
  "type": "layer",
  "layerNames": ["layer-to-activate"],
  "layerNamesInactive": ["layer-to-deactivate"]
}

1.3. Content Visualization

1.3.1. GeoJSON Data Display

Add dynamic geospatial data to enhance story context.

Type: geojson

Capabilities:

  • Display points of interest (POIs)

  • Show text labels and annotations

  • Render custom geospatial features

  • Integration with VC Map’s drawing tools

  • Support for styled vector data

Configuration example:

{
  "id": "geojson-poi",
  "type": "geojson",
  "featureUrl": "path/to/features.json"
}

1.3.2. 3D Model Integration

Incorporate 3D models into the story environment.

Type: model

Capabilities:

  • Add GLTF/GLB 3D models to specific locations

  • Configurable model scaling and positioning

  • Support for planning visualizations

  • Combine with hide actions for building replacement scenarios

Configuration example:

{
  "id": "model-planning",
  "type": "model",
  "models": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [longitude, latitude, height]
      },
      "properties": {
        "olcs_modelUrl": "path/to/model.glb",
        "olcs_modelHeading": 0,
        "olcs_modelScaleX": "1",
        "olcs_modelScaleY": "1",
        "olcs_modelScaleZ": "1"
      }
    }
  ]
}

1.4. Object Manipulation

1.4.1. Building/Object Hiding

Hide specific buildings or objects to reveal planning scenarios.

Type: hide

Capabilities:

  • Hide buildings from 3D city models

  • Support for multiple layer types

  • Enable planning visualization by removing existing structures

  • Combine with model actions for replacement scenarios

Configuration example:

{
  "id": "hide-buildings",
  "type": "hide",
  "layerNames": ["buildings_layer"],
  "ids": ["building_id_1", "building_id_2"]
}

1.4.2. Object Highlighting

Emphasize specific buildings or features.

Type: highlight

Capabilities:

  • Visual highlighting of specific buildings

  • Direct attention to points of interest

  • Configurable highlight styling

  • Support for multiple simultaneous highlights

Configuration example:

{
  "id": "highlight-building",
  "type": "highlight",
  "layerNames": ["buildings_layer"],
  "ids": {
    "building_id1": "#00a0ba",
    "building_id2": "#86b110"
  }
}

1.5. Feature Interaction

1.5.1. Feature Selection

Programmatically select features and display their information.

Type: select

Capabilities:

  • Select features on specific layers

  • Display feature information panels

  • Support for precise coordinate-based selection

  • Integration with VC Map’s feature info system

  • for vector layers, selection by feature ID is used,

  • for Cesium tileset layers position for selection is used.

Configuration example:

{
  "id": "select-feature",
  "type": "select",
  "layer": "layer_name",
  "featureId": "feature_identifier", // for vector layers
  "position": [longitude, latitude, height] // for Cesium tileset layers
}

1.6. Widget Integration

1.6.1. Shadow Analysis Widget

Activate and configure shadow analysis tools.

Type: widget (Shadow)

Capabilities:

  • Temporal shadow analysis

  • Configurable date and time settings

  • Integration with VC Map’s shadow widget

  • Visual shadow rendering on 3D models

Configuration example:

{
  "id": "shadow-widget",
  "type": "widget",
  "widget": {
    "type": "vcs.vcm.widgets.Shadow",
    "settings": {
      "date": [2023, 6, 21, 12, 0, 0]
    }
  }
}

1.6.2. Viewshed Analysis Widget

Activate viewshed analysis for visibility studies.

Type: widget (Viewshed)

Capabilities:

  • 3D visibility analysis

  • Configurable observer position and viewing parameters

  • Visual representation of visible/hidden areas

  • Integration with planning and analysis workflows

Configuration example:

{
  "id": "viewshed-widget",
  "type": "widget",
  "widget": {
    "type": "vcs.vcm.widgets.viewshed.Viewshed",
    "settings": {
      "position": [13.375, 52.508, 100],
      "orientation": {
        "heading": 45,
        "pitch": 0,
        "roll": 0
      },
      "colorOptions": {
        "visibleColor": "#00ff0080",
        "shadowColor": "#ff000080"
      }
    }
  }
}

1.7. Custom Callbacks

Execute custom callback functions for advanced interactions.

Type: callback

Capabilities:

  • Execute arbitrary callback functions

  • Integration with VC Map’s callback system

  • Support for complex custom workflows

  • Extensible action framework

Configuration example:

{
  "id": "my-callback-action",
  "type": "callback",
  "callbacks": [
    {
      "type": "DeactivateLayersCallback",
      "layerNames": ["mesh_surface", "buildings_untextured"]
    },
    {
        "type": "GoToViewpointCallback",
        "viewpoint": "alexanderplatz"
    }
  ]
}

An overview of VC Map Callbacks can be found here: VC Map Callbacks.