<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title>PointCloudLayer - change point size and density | Sample | ArcGIS Maps SDK for JavaScript</title>
<!-- Load the ArcGIS Maps SDK for JavaScript from CDN -->
<script type="module" src="https://js.arcgis.com/5.0/"></script>
<arcgis-zoom slot="top-left"></arcgis-zoom>
<arcgis-navigation-toggle slot="top-left"></arcgis-navigation-toggle>
<arcgis-compass slot="top-left"></arcgis-compass>
<calcite-panel slot="bottom-left" heading="Customize Point Size and Density">
<div class="slider-block">
<span class="slider-label">Point size</span>
<div class="slider-block">
<span class="slider-label">Points per inch</span>
id="points-per-inch-slider"
const [Map, PointCloudLayer] = await $arcgis.import([
"@arcgis/core/layers/PointCloudLayer.js",
const selectedPointsSize = 5;
const selectedPointsPerInch = 5;
const pcLayer = new PointCloudLayer({
url: "https://tiles.arcgis.com/tiles/V6ZHFr6zdgNZuVG0/arcgis/rest/services/BARNEGAT_BAY_LiDAR_UTM/SceneServer",
useRealWorldSymbolSizes: false,
size: selectedPointsSize,
pointsPerInch: selectedPointsPerInch,
ground: "world-elevation",
const viewElement = document.querySelector("arcgis-scene");
spatialReference: { wkid: 3857 },
await viewElement.viewOnReady();
const pointsizeSlider = document.getElementById("point-size-slider");
const pointsperinchSlider = document.getElementById("points-per-inch-slider");
function updatePointSize(value) {
const newRenderer = pcLayer.renderer.clone();
newRenderer.pointSizeAlgorithm.size = Number(value);
pcLayer.renderer = newRenderer;
function updatePointsPerInch(value) {
const newRenderer = pcLayer.renderer.clone();
newRenderer.pointsPerInch = Number(value);
pcLayer.renderer = newRenderer;
pointsizeSlider.addEventListener("calciteSliderInput", (event) => {
updatePointSize(event.target.value);
pointsperinchSlider.addEventListener("calciteSliderInput", (event) => {
updatePointsPerInch(event.target.value);