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.