Manage analysis with analysis overlays
AnalysisOverlay classes provide fast, dynamic visualization of analysis results in a scene view. These classes allow you to define analyses (such as viewshed, line of sight, or distance measurement) to be performed using data in the current
Scene. Rendered results are updated dynamically as layers are added or removed, features are updated, the camera position changes, and so on.
Add an analysis overlay
One or more analysis objects can be added to an analysis overlay, which is then added to the scene view. The analysis overlay can control result visibility for all analyses it contains, allowing you to manage a set of related analyses as a single overlay displayed in the view. A scene view can contain several analysis overlays.
- Create a new AnalysisOverlay to contain one or more analyses. You might use one overlay to contain all the line of sight analyses for a specific observation point, for example.
AnalysisOverlay* allLinesOfSightOverlay = new AnalysisOverlay(this);
Add the analysis overlay to the scene view's overlay collection. Similar to the graphics overlay collection, a scene view can have zero or several analysis overlays in the collection.
Add one or more
Analysisobjects to the overlay. You can add and remove analyses in the overlay whenever you need to.
Controlling analysis visibility
Visibility for scene analyses can be toggled on or off for individual analysis classes (a single line of sight analysis, for example) or for an entire analysis overlay. Toggling the visibility for an analysis overlay will affect all the analyses it contains. This allows you to organize your analyses into logical groups and manage their visibility as a single unit.
You can toggle visibility for an individual analysis to show/hide its results, or toggle visibility for the analysis overlay (and all analyses it contains) as a group. You can also remove it from the analysis overlay if you no longer need it, as well as remove the entire overlay from the scene view.
// Hide an analysis display rooftopToWindow->setVisible(false); // Show the analysis overlay display (to render all analyses that are also set to visible) allLinesOfSightOverlay->setVisible(true); // Remove an analysis from the overlay allLinesOfSightOverlay->analyses()->removeOne(rooftopToIntersection); // Remove the analysis overlay from the scene view analysis overlay collection m_sceneView->analysisOverlays()->removeOne(allLinesOfSightOverlay);