ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.CIM Namespace / CIMAutoCamera Class / Source Property
Example

In This Topic
    Source Property (CIMAutoCamera)
    In This Topic
    Gets or sets the extent constraint associated with the map frame.
    Syntax
    Public Property Source As AutoCameraSource
    public AutoCameraSource Source {get; set;}
    Example
    SetAutoCameraNone
    {
      //Note: Must be on QueuedTask.Run
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.None;
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    SetAutoCameraFixedExtent
    {
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.Fixed;
      autoCamera.AutoCameraType = AutoCameraType.Extent;
    
      var mf_extent = mapFrame.GetViewExtent();
    
      var extent = EnvelopeBuilderEx.CreateEnvelope(
        400748.62, 800296.4, 1310669.05, 1424520.74, mapFrame.Map.SpatialReference);
      autoCamera.Extent = extent;
    
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    SetAutoCameraFixedCenter
    {
      //Note: run within the QueuedTask
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.Fixed;
      autoCamera.AutoCameraType = AutoCameraType.Center;
    
      var camera = mapFrame.GetMapView(LayoutView.Active).Camera;
      var center = mapFrame.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 = mapFrame.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
      autoCamera.IntersectLayerPath = states.URI;
    
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    SetAutoCameraFixedCenterAndScale
    {
      //Note: run within the QueuedTask
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.Fixed;
      autoCamera.AutoCameraType = AutoCameraType.CenterAndScale;
    
      var camera = mapFrame.GetMapView(LayoutView.Active).Camera;
      var center = mapFrame.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 = mapFrame.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
      //autoCamera.IntersectLayerPath = states.URI;
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    SetAutoCameraFixedScale
    {
      //Note: run within the QueuedTask
    
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.Fixed;
      autoCamera.AutoCameraType = AutoCameraType.Scale;
    
      var camera = mapFrame.GetMapView(LayoutView.Active).Camera;
      var center = mapFrame.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 = mapFrame.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
      //autoCamera.IntersectLayerPath = states.URI;
    
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    
    }
    SetAutoCameraLinkedExtent
    {
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.MapFrameLink;
      autoCamera.AutoCameraType = AutoCameraType.Extent;
      autoCamera.MapFrameLinkName = "mapFrameLink";
    
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    SetAutoCameraLinkedCenter
    {
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.MapFrameLink;
      autoCamera.AutoCameraType = AutoCameraType.Center;
      autoCamera.MapFrameLinkName = "mapFrameLink";
      var states = mapFrame.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
      autoCamera.IntersectLayerPath = states.URI;
    
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    SetAutoCameraLinkedCenterAndScale
    {
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.MapFrameLink;
      autoCamera.AutoCameraType = AutoCameraType.CenterAndScale;
      autoCamera.MapFrameLinkName = "mapFrameLink";
      var states = mapFrame.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
      autoCamera.IntersectLayerPath = states.URI;
    
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    SetAutoCameraLinkedScale
    {
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.MapFrameLink;
      autoCamera.AutoCameraType = AutoCameraType.Scale;
      autoCamera.MapFrameLinkName = "mapFrameLink";
      var states = mapFrame.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
      autoCamera.IntersectLayerPath = states.URI;
    
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    SetAutoCameraLinkedMapSeriesShape
    {
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.MapSeriesLink;
      autoCamera.AutoCameraType = AutoCameraType.Extent;
      //autoCamera.MapFrameLinkName = mapFrameLink;
      var states = mapFrame.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
      autoCamera.IntersectLayerPath = states.URI;
    
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    SetAutoCameraLinkedMapSeriesCenter
    {
      var autoCamera = mapFrame.GetAutoCamera();
      autoCamera.Source = AutoCameraSource.MapSeriesLink;
      autoCamera.AutoCameraType = AutoCameraType.Center;
    
      var states = mapFrame.Map.GetLayersAsFlattenedList().First(l => l.Name == "State_Polygons");
      autoCamera.IntersectLayerPath = states.URI;
    
      if (mapFrame.ValidateAutoCamera(autoCamera) &&
        !mapFrame.IsMapSeriesMapFrame())
        mapFrame.SetAutoCamera(autoCamera);
    }
    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.0 or higher.
    See Also