This sample demonstrates how to build a measurement and analysis experience with the Exploratory Analysis component.

The app displays a web map in a 2D Map and a web scene in a 3D Scene. Each view has an Exploratory Analysis component whose child components determine the available tools:

The Exploratory Analysis component creates a toolbar from its direct children and manages which analysis is visible and active.

<arcgis-exploratory-analysis id="analysis2d" slot="top-right" show-heading>
<!-- each child element will appear in the toolbar -->
<arcgis-distance-measurement-2d></arcgis-distance-measurement-2d>
<arcgis-area-measurement-2d></arcgis-area-measurement-2d>
<arcgis-elevation-profile></arcgis-elevation-profile>
</arcgis-exploratory-analysis>

When switching between 2D and 3D, the sample clones the active viewpoint, applies a latitude-based scale adjustment to better match perceived zoom between views, swaps the visible view element, and clears any measurements so results never persist across 2D/3D.

function switchView() {
const switchingFrom2D = activeDimension === "2d";
const activeViewpoint = switchingFrom2D ? map2d.viewpoint.clone() : scene3d.viewpoint.clone();
// Adjust for Web Mercator distortion in 2D maps (scale increases with latitude).
const latitude = getLatitudeFromViewpoint(activeViewpoint);
const scaleConversionFactor = Math.cos((latitude * Math.PI) / 180);
// Switching between 2D and 3D clears measurements
clearAllAnalyses();
if (switchingFrom2D) {
activeViewpoint.scale *= scaleConversionFactor;
scene3d.viewpoint = activeViewpoint;
showAndHide(scene3d, map2d);
activeDimension = "3d";
switchViewButton.textContent = "2D";
} else {
activeViewpoint.scale /= scaleConversionFactor;
map2d.viewpoint = activeViewpoint;
showAndHide(map2d, scene3d);
activeDimension = "2d";
switchViewButton.textContent = "3D";
}
}
2D3D5.2arcgis-maparcgis-scenearcgis-exploratory-analysisarcgis-distance-measurement-2darcgis-area-measurement-2darcgis-direct-line-measurement-3darcgis-area-measurement-3darcgis-volume-measurementarcgis-elevation-profilemeasurementanalysis