ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.CIM Namespace / CIMAutoCamera Class / IntersectLayerPath Property
Example

In This Topic
    IntersectLayerPath Property
    In This Topic
    Gets or sets the layer being used to set the camera when using the map frame link constraint.
    Syntax
    public string IntersectLayerPath {get; set;}
    Public Property IntersectLayerPath As String
    Example
    SetAutoCameraFixedCenter
    //Note: run within the QueuedTask
    var layout = LayoutView.Active.Layout;
    var mf = layout.GetElementsAsFlattenedList().OfType<MapFrame>()
      .First(mf => mf.Name == mapFrame);
    var autoCamera = mf.GetAutoCamera();
    autoCamera.Source = AutoCameraSource.Fixed;
    autoCamera.AutoCameraType = AutoCameraType.Center;
    
    var camera = mf.GetMapView(LayoutView.Active).Camera;
    var center = mf.GetViewCenter();
    
    //var extent = EnvelopeBuilderEx.CreateEnvelope(
    //    400748.62, 800296.4, 1310669.05, 1424520.74, mf.Map.SpatialReference);
    //autoCamera.Extent = extent;
    
    var camera2 = new CIMViewCamera()
    {
      Heading = 0,
      Pitch = -90,
      Roll = 0,
      Scale = 21169571,
      X = 855708,
      Y = 1112409,
      Z = double.NaN
    };
    autoCamera.Camera = camera2;
    var states = mf.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
    autoCamera.IntersectLayerPath = states.URI;
    
    if (mf.ValidateAutoCamera(autoCamera) &&
      !mf.IsMapSeriesMapFrame())
      mf.SetAutoCamera(autoCamera);
    
    SetAutoCameraFixedCenterAndScale
    //Note: run within the QueuedTask
    var layout = LayoutView.Active.Layout;
    var mf = layout.GetElementsAsFlattenedList().OfType<MapFrame>()
      .First(mf => mf.Name == mapFrame);
    var autoCamera = mf.GetAutoCamera();
    autoCamera.Source = AutoCameraSource.Fixed;
    autoCamera.AutoCameraType = AutoCameraType.CenterAndScale;
    
    var camera = mf.GetMapView(LayoutView.Active).Camera;
    var center = mf.GetViewCenter();
    
    //var extent = EnvelopeBuilderEx.CreateEnvelope(
    //    400748.62, 800296.4, 1310669.05, 1424520.74, mf.Map.SpatialReference);
    //autoCamera.Extent = extent;
    
    var camera2 = new CIMViewCamera()
    {
      Heading = 0,
      Pitch = -90,
      Roll = 0,
      Scale = 21169571,
      X = 1310669.0 + ((400748.5 - 1310669.0) / 2.0),
      Y = 800296.4 + ((1424520.74 - 800296.4) / 2.0),
      Z = double.NaN
    };
    autoCamera.Camera = camera2;
    var states = mf.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
    //autoCamera.IntersectLayerPath = states.URI;
    
    
    if (mf.ValidateAutoCamera(autoCamera) &&
      !mf.IsMapSeriesMapFrame())
      mf.SetAutoCamera(autoCamera);
    
    SetAutoCameraFixedScale
    //Note: run within the QueuedTask
    var layout = LayoutView.Active.Layout;
    var mf = layout.GetElementsAsFlattenedList().OfType<MapFrame>()
      .First(mf => mf.Name == mapFrame);
    var autoCamera = mf.GetAutoCamera();
    autoCamera.Source = AutoCameraSource.Fixed;
    autoCamera.AutoCameraType = AutoCameraType.Scale;
    
    var camera = mf.GetMapView(LayoutView.Active).Camera;
    var center = mf.GetViewCenter();
    
    //var extent = EnvelopeBuilderEx.CreateEnvelope(
    //    400748.62, 800296.4, 1310669.05, 1424520.74, mf.Map.SpatialReference);
    //autoCamera.Extent = extent;
    
    var camera2 = new CIMViewCamera()
    {
      Heading = 0,
      Pitch = -90,
      Roll = 0,
      Scale = 20000571,
      X = 1310669.0 + ((400748.5 - 1310669.0) / 2.0),
      Y = 800296.4 + ((1424520.74 - 800296.4) / 2.0),
      Z = double.NaN
    };
    autoCamera.Camera = camera2;
    var states = mf.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
    //autoCamera.IntersectLayerPath = states.URI;
    
    if (mf.ValidateAutoCamera(autoCamera) &&
      !mf.IsMapSeriesMapFrame())
      mf.SetAutoCamera(autoCamera);
    
    SetAutoCameraLinkedCenter
    var layout = LayoutView.Active.Layout;
    var mf = layout.GetElementsAsFlattenedList().OfType<MapFrame>()
      .First(mf => mf.Name == mapFrame);
    var autoCamera = mf.GetAutoCamera();
    autoCamera.Source = AutoCameraSource.MapFrameLink;
    autoCamera.AutoCameraType = AutoCameraType.Center;
    autoCamera.MapFrameLinkName = mapFrameLink;
    var states = mf.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
    autoCamera.IntersectLayerPath = states.URI;
    
    if (mf.ValidateAutoCamera(autoCamera) &&
      !mf.IsMapSeriesMapFrame())
      mf.SetAutoCamera(autoCamera);
    
    SetAutoCameraLinkedCenterAndScale
    var layout = LayoutView.Active.Layout;
    var mf = layout.GetElementsAsFlattenedList().OfType<MapFrame>()
      .First(mf => mf.Name == mapFrame);
    var autoCamera = mf.GetAutoCamera();
    autoCamera.Source = AutoCameraSource.MapFrameLink;
    autoCamera.AutoCameraType = AutoCameraType.CenterAndScale;
    autoCamera.MapFrameLinkName = mapFrameLink;
    var states = mf.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
    autoCamera.IntersectLayerPath = states.URI;
    
    if (mf.ValidateAutoCamera(autoCamera) &&
      !mf.IsMapSeriesMapFrame())
      mf.SetAutoCamera(autoCamera);
    
    SetAutoCameraLinkedScale
    var layout = LayoutView.Active.Layout;
    var mf = layout.GetElementsAsFlattenedList().OfType<MapFrame>()
      .First(mf => mf.Name == mapFrame);
    var autoCamera = mf.GetAutoCamera();
    autoCamera.Source = AutoCameraSource.MapFrameLink;
    autoCamera.AutoCameraType = AutoCameraType.Scale;
    autoCamera.MapFrameLinkName = mapFrameLink;
    var states = mf.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
    autoCamera.IntersectLayerPath = states.URI;
    
    if (mf.ValidateAutoCamera(autoCamera) &&
      !mf.IsMapSeriesMapFrame())
      mf.SetAutoCamera(autoCamera);
    
    SetAutoCameraLinkedMapSeriesShape
    var layout = LayoutView.Active.Layout;
    var mf = layout.GetElementsAsFlattenedList().OfType<MapFrame>()
      .First(mf => mf.Name == mapFrame);
    var autoCamera = mf.GetAutoCamera();
    autoCamera.Source = AutoCameraSource.MapSeriesLink;
    autoCamera.AutoCameraType = AutoCameraType.Extent;
    //autoCamera.MapFrameLinkName = mapFrameLink;
    var states = mf.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
    autoCamera.IntersectLayerPath = states.URI;
    
    if (mf.ValidateAutoCamera(autoCamera) &&
      !mf.IsMapSeriesMapFrame())
      mf.SetAutoCamera(autoCamera);
    
    SetAutoCameraLinkedMapSeriesCenter
    var layout = LayoutView.Active.Layout;
    var mf = layout.GetElementsAsFlattenedList().OfType<MapFrame>()
      .First(mf => mf.Name == mapFrame);
    var autoCamera = mf.GetAutoCamera();
    autoCamera.Source = AutoCameraSource.MapSeriesLink;
    autoCamera.AutoCameraType = AutoCameraType.Center;
    
    var states = mf.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
    autoCamera.IntersectLayerPath = states.URI;
    
    if (mf.ValidateAutoCamera(autoCamera) &&
      !mf.IsMapSeriesMapFrame())
      mf.SetAutoCamera(autoCamera);
    
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also