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.