This sample shows how to display area measurements for polygons that are selected by the user. Create and add an AreaMeasurementAnalysis Object to the sceneview.analyses. Add a click event listener on the view. If the user clicked on a parcel polygon, add the polygon to the geometry property of the AreaMeasurementAnalysis Object.
// create a AreaMeasurementAnalysis object and add it to the AnalysisLayer
const areaMeasurementAnalysis = new AreaMeasurementAnalysis();
view.analyses.add(areaMeasurementAnalysis);
view.when(() => {
const hitTestLayers = view.map.layers.filter((layer) => layer.title === "Parcels");
view.on("click", async (event) => {
// remove the current measured geometry from the layer when the user clicks on the map
areaMeasurementAnalysis.geometry = null;
// get results only from the "Parcels" layer
const hitTestResult = await view.hitTest(event, { include: hitTestLayers });
if (hitTestResult.results.length > 0) {
const geometry = hitTestResult.results[0].graphic.geometry;
// pass the polygon geometry to the areaMeasurementAnalysis to display a new measurement
areaMeasurementAnalysis.geometry = geometry;
}
});
});
For using the other analysis object see also the sample Analysis objects.