ArcGIS Pro 2.3 API Reference Guide
Map Class
Members  Example 

ArcGIS.Desktop.Mapping Namespace : Map Class
Represents the primary object used for the organization of geographic data.
Object Model
Map ClassBookmark ClassAnimation ClassEnvelope ClassLayer ClassStandaloneTable ClassEnvelope ClassEnvelope ClassCIMMap ClassCIMGeneralPlacementProperties ClassCIMMapElevationSurface ClassOperationManager ClassSpatialReference Class

To create a Map, you must call one of the create methods of the MapFactory class.

To open a map, use ProApp.Panes.CreateMapPaneAsync method.

You can also think it as a container of layers, StandaloneTables, bookmarks etc. You need to use MapView to interact with a map. Multiple MapViews can be opened for a Map at a given time, but there can only be one active MapView which is returned by the MapView.Active static member. Use Map property of access the Map object associated with the MapView. The Map object has properties that operate on all layers within the map, such as spatial reference, reference scale, and so on, along with methods that manipulate the map's layers.

Create a new map with the default basemap layer.
  await QueuedTask.Run(() =>
  var map = MapFactory.Instance.CreateMap(mapName, basemap: Basemap.ProjectDefault);
  //TODO: use the map...

Open a webmap.
Map map = null;

//Assume we get the selected webmap from the Project pane's Portal tab
if (Project.Current.SelectedItems.Count > 0)
  if (MapFactory.Instance.CanCreateMapFrom(Project.Current.SelectedItems[0]))
    map = MapFactory.Instance.CreateMapFromItem(Project.Current.SelectedItems[0]);
    await ProApp.Panes.CreateMapPaneAsync(map);
Find a map within a project and open it.
public static async Task<Map> FindOpenExistingMapAsync(string mapName)
  return await QueuedTask.Run(async () =>
    Map map = null;
    Project proj = Project.Current;

    //Finding the first project item with name matches with mapName
    MapProjectItem mpi =
            .FirstOrDefault(m => m.Name.Equals(mapName, StringComparison.CurrentCultureIgnoreCase));
    if (mpi != null)
      map = mpi.GetMap();
      //Opening the map in a mapview
      await ProApp.Panes.CreateMapPaneAsync(map);
    return map;

Find a layers using partial name search.
      Map map = MapView.Active.Map;
IEnumerable<Layer> matches = map.GetLayersAsFlattenedList().Where(l => l.Name.IndexOf(partialName, StringComparison.CurrentCultureIgnoreCase) >= 0);
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 = @"";  //map service
* string url = @"";  //FeatureLayer off a map service or feature service
      string url = @"c:\data\project.gdb\roads";  //FeatureClass of a FileGeodatabase

      Uri uri = new Uri(url);
      await QueuedTask.Run(() => LayerFactory.Instance.CreateLayer(uri, MapView.Active.Map));
Inheritance Hierarchy



Target Platforms: Windows 10, Windows 8.1, Windows 7

See Also


Map Members
ArcGIS.Desktop.Mapping Namespace