CreateLayer(Uri,ILayerContainerEdit,Int32,String) Method
In This Topic
Creates a new Layer instance with the specified path to a dataset and adds it to a container such as a map or a group layer. Optionally you can provide a name to override the default display name.
This method must be called on the MCT. Use QueuedTask.Run.
Syntax
Parameters
- dataUri
- An URI represents the path or url to a dataset or .lyrx or .lpkx file.
- container
- A map or group layer instance where the Layer will be added
- index
- The position of the layer in the map or group layer. 0 represents the top most position.
- layerName
- (optional) When it is not provided, the default display name gets used e.g. the dataset name or alias. (default value = "")
Return Value
Exceptions
Example
Create and add a layer to the active map
{
//* string url = @"c:\data\project.gdb\DEM"; //Raster dataset from a FileGeodatabase
//* string url = @"c:\connections\mySDEConnection.sde\roads"; //FeatureClass of a SDE
//* string url = @"c:\connections\mySDEConnection.sde\States\roads"; //FeatureClass within a FeatureDataset from a SDE
//* string url = @"c:\data\roads.shp"; //Shapefile
//* string url = @"c:\data\imagery.tif"; //Image from a folder
//* string url = @"c:\data\mySDEConnection.sde\roads"; //.lyrx or .lpkx file
//* string url = @"c:\data\CAD\Charlottesville\N1W1.dwg\Polyline"; //FeatureClass in a CAD dwg file
//* string url = @"C:\data\CAD\UrbanHouse.rvt\Architectural\Windows"; //Features in a Revit file
//* string url = @"http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer"; //map service
//* string url = @"http://sampleserver6.arcgisonline.com/arcgis/rest/services/NapervilleShelters/FeatureServer/0"; //FeatureLayer off a map service or feature service
string urlRoads = @"c:\data\project.gdb\roads"; //FeatureClass of a FileGeodatabase
//Note: Needs QueuedTask to run
Uri uri = new Uri(urlRoads);
var newLayer = LayerFactory.Instance.CreateLayer(uri, MapView.Active.Map);
}
Create a raster layer
{
string urlRatser = @"C:\Images\Italy.tif";
await QueuedTask.Run(() =>
{
// Create a raster layer using a path to an image.
// Note: You can create a raster layer from a url, project item, or data connection.
//Note: needs to be called on the MCT
var rasterLayerToCreate = LayerFactory.Instance.CreateLayer(new Uri(urlRatser), map) as RasterLayer;
});
}
Create a mosaic layer
{
//Path to mosaic dataset
string urlItaly = @"C:\Images\countries.gdb\Italy";
//Note: Run within a QueuedTask
// Create a mosaic layer using a path to a mosaic dataset.
// Note: You can create a mosaic layer from a url, project item, or data connection.
mosaicLayer = LayerFactory.Instance.CreateLayer(new Uri(urlItaly), map) as MosaicLayer;
}
Create an image service layer
{
string urlToUse =
@"http://imagery.arcgisonline.com/arcgis/services/LandsatGLS/GLS2010_Enhanced/ImageServer";
// Create an image service layer using the url for an image service.
//Note: Run within a QueuedTask
var isLayer = LayerFactory.Instance.CreateLayer(new Uri(urlToUse), map) as ImageServiceLayer;
}
Create a stream layer with a simple renderer
{
// Note: call within QueuedTask.Run()
{
var url = @"https://geoeventsample1.esri.com:6443/arcgis/rest/services/LABus/StreamServer";
var uri = new Uri(url, UriKind.Absolute);
var createParams = new FeatureLayerCreationParams(uri)
{
RendererDefinition = new SimpleRendererDefinition()
{
SymbolTemplate = SymbolFactory.Instance.ConstructPointSymbol(
ColorFactory.Instance.BlueRGB,
12,
SimpleMarkerStyle.Pushpin).MakeSymbolReference()
}
};
streamLayer = LayerFactory.Instance.CreateLayer<StreamLayer>(
createParams, map);
}
}
Create Voxel Layer
{
// Note: call within QueuedTask.Run()
{
//Must be a .NetCDF file for voxels
var url = @"C:\MyData\AirQuality_Redlands.nc";
var cim_connection = new CIMVoxelDataConnection()
{
URI = url
};
//Create a VoxelLayerCreationParams
var createParams = VoxelLayerCreationParams.Create(cim_connection);
createParams.IsVisible = true;
//Can also just use the path directly...
//var createParams = VoxelLayerCreationParams.Create(url);
//Use VoxelLayerCreationParams to enumerate the variables within
//the voxel
var variables = createParams.Variables;
foreach (var variable in variables)
{
var line = $"{variable.Variable}: {variable.DataType}, " +
$"{variable.Description}, {variable.IsDefault}, {variable.IsSelected}";
System.Diagnostics.Debug.WriteLine(line);
}
//Optional: set the default variable
createParams.SetDefaultVariable(variables.Last());
//Create the layer - map must be a local scene
voxelLayer = LayerFactory.Instance.CreateLayer<VoxelLayer>(createParams, map);
}
}
Requirements
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)
ArcGIS Pro version: 3.0 or higher.
See Also