

Public NotInheritable Class LasDatasetLayer Inherits SurfaceLayer Implements ArcGIS.Desktop.Core.IMetadataInfo, IMetadataSource, System.ComponentModel.INotifyPropertyChanged
public sealed class LasDatasetLayer : SurfaceLayer, ArcGIS.Desktop.Core.IMetadataInfo, IMetadataSource, System.ComponentModel.INotifyPropertyChanged
{
// find the first TIN layer
tinLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<TinLayer>().FirstOrDefault();
// find the first Terrain layer
terrainLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<TerrainLayer>().FirstOrDefault();
// find the first LAS dataset layer
lasDatasetLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<LasDatasetLayer>().FirstOrDefault();
// find the first surface layer
surfaceLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<SurfaceLayer>().FirstOrDefault();
}
{
string lasPath = @"d:\Data\LASDataset.lasd";
var lasURI = new Uri(lasPath);
var lasCP = new LasDatasetLayerCreationParams(lasURI);
lasCP.Name = "My LAS Layer";
lasCP.IsVisible = false;
// Note: Needs QueuedTask to run
{
//Create the layer to the LAS dataset
lasDatasetLayer = LayerFactory.Instance.CreateLayer<LasDatasetLayer>(lasCP, map);
}
}
{
if (lasDataset == null)
throw new ArgumentNullException(nameof(lasDataset));
var lasCP_ds = new LasDatasetLayerCreationParams(lasDataset);
lasCP_ds.Name = "My LAS Layer";
lasCP_ds.IsVisible = false;
// Note: Needs QueuedTask to run
{
//Create the layer to the LAS dataset
var lasDatasetLayer_ds = LayerFactory.Instance.CreateLayer<LasDatasetLayer>(lasCP_ds, map);
}
}
{
var lasCP_renderers = new LasDatasetLayerCreationParams(lasDataset);
lasCP_renderers.Name = "My LAS Layer";
lasCP_renderers.IsVisible = false;
// create a point elevation renderer
var ptR = new LasStretchRendererDefinition();
// accept all defaults
// create a simple edge renderer
var edgeR = new TinEdgeRendererDefintion();
// accept all defaults
// add renderers to dictionary
var l_dict = new Dictionary<SurfaceRendererTarget, TinRendererDefinition>();
l_dict.Add(SurfaceRendererTarget.Points, ptR);
l_dict.Add(SurfaceRendererTarget.Edges, edgeR);
// assign dictionary to creation params
lasCP_renderers.RendererDefinitions = l_dict;
// Note: Needs QueuedTask to run
{
//Create the layer to the LAS dataset
var lasDatasetLayer_rd = LayerFactory.Instance.CreateLayer<LasDatasetLayer>(lasCP_renderers, map);
}
}
{
var lasPointsClassificationRendererDef = new LasUniqueValueRendererDefinition(LasAttributeType.Classification);
// accept the defaults for color ramp, symbolTemplate, symbol scale factor
if (lasDatasetLayer == null)
return;
// Note: Needs QueuedTask to run
{
if (lasDatasetLayer.CanCreateRenderer(lasPointsClassificationRendererDef))
{
CIMTinRenderer renderer = lasDatasetLayer.CreateRenderer(lasPointsClassificationRendererDef);
if (lasDatasetLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Points))
lasDatasetLayer.SetRenderer(renderer, SurfaceRendererTarget.Points);
}
}
}
System.Object
ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase
ArcGIS.Desktop.Mapping.MapMember
ArcGIS.Desktop.Mapping.Layer
ArcGIS.Desktop.Mapping.SurfaceLayer
ArcGIS.Desktop.Mapping.LasDatasetLayer
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)