Creates a camera animation from path. The path is supplied by specifying a specific line feature from a ILayer.
[C#]
///<summary>Creates a camera animation from path. The path is supplied by specifying a specific line feature from a ILayer.</summary> /// ///<param name="globe">An IGlobe interface</param> ///<param name="layer">An ILayer interface that is a Polyline</param> ///<param name="featureID">A System.Int32 that is the FeatureID record number for which the fly by is to follow to create the animation. Example: 123</param> /// ///<remarks></remarks> public void CreateAnimationFromPath(ESRI.ArcGIS.GlobeCore.IGlobe globe, ESRI.ArcGIS.Carto.ILayer layer, int featureID) { ESRI.ArcGIS.GlobeCore.IGlobeDisplay globeDisplay = globe.GlobeDisplay; ESRI.ArcGIS.Analyst3D.IScene scene = globeDisplay.Scene; // Get a handle to the animation extension ESRI.ArcGIS.Analyst3D.IBasicScene2 basicScene2 = (ESRI.ArcGIS.Analyst3D.IBasicScene2)scene; // Explicit Cast ESRI.ArcGIS.Animation.IAnimationExtension animationExtension = basicScene2.AnimationExtension; ESRI.ArcGIS.Carto.IFeatureLayer featureLayer = (ESRI.ArcGIS.Carto.IFeatureLayer)layer; // Explicit Cast ESRI.ArcGIS.Geodatabase.IFeatureClass featureClass = featureLayer.FeatureClass; ESRI.ArcGIS.Geodatabase.IFeature feature = featureClass.GetFeature(featureID); // Get the geometry of the line feature ESRI.ArcGIS.Geometry.IGeometry geometry = feature.Shape; // Create AGAnimationUtils and AGImportPathOptions objects ESRI.ArcGIS.Animation.IAGAnimationUtils agAnimationUtils = new ESRI.ArcGIS.Animation.AGAnimationUtilsClass(); ESRI.ArcGIS.Animation.IAGImportPathOptions agImportPathOptions = new ESRI.ArcGIS.Animation.AGImportPathOptionsClass(); // Set properties for AGImportPathOptions agImportPathOptions.BasicMap = (ESRI.ArcGIS.Carto.IBasicMap)globe; // Explicit Cast agImportPathOptions.AnimationTracks = (ESRI.ArcGIS.Animation.IAGAnimationTracks)globe; // Explicit Cast agImportPathOptions.AnimationType = new ESRI.ArcGIS.GlobeCore.AnimationTypeGlobeCameraClass(); agImportPathOptions.AnimatedObject = globe.GlobeDisplay.ActiveViewer.Camera; agImportPathOptions.PathGeometry = geometry; agImportPathOptions.ConversionType = ESRI.ArcGIS.Animation.esriFlyFromPathType.esriFlyFromPathObsAndTarget; agImportPathOptions.LookaheadFactor = 0.05; agImportPathOptions.RollFactor = 0; agImportPathOptions.AnimationEnvironment = animationExtension.AnimationEnvironment; ESRI.ArcGIS.Animation.IAGAnimationContainer AGAnimationContainer = animationExtension.AnimationTracks.AnimationObjectContainer; // Call "CreateFlybyFromPath" agAnimationUtils.CreateFlybyFromPath(AGAnimationContainer, agImportPathOptions); }
[Visual Basic .NET]
'''<summary>Creates a camera animation from path. The path is supplied by specifying a specific line feature from a ILayer.</summary> ''' '''<param name="globe">An IGlobe interface</param> '''<param name="layer">An ILayer interface that is a Polyline</param> '''<param name="featureID">A System.Int32 that is the FeatureID record number for which the fly by is to follow to create the animation. Example: 123</param> ''' '''<remarks></remarks> Public Sub CreateAnimationFromPath(ByVal globe As ESRI.ArcGIS.GlobeCore.IGlobe, ByVal layer As ESRI.ArcGIS.Carto.ILayer, ByVal featureID As System.Int32) Dim globeDisplay As ESRI.ArcGIS.GlobeCore.IGlobeDisplay = globe.GlobeDisplay Dim scene As ESRI.ArcGIS.Analyst3D.IScene = globeDisplay.Scene ' Get a handle to the animation extension Dim basicScene2 As ESRI.ArcGIS.Analyst3D.IBasicScene2 = CType(scene, ESRI.ArcGIS.Analyst3D.IBasicScene2) ' Explicit Cast Dim animationExtension As ESRI.ArcGIS.Animation.IAnimationExtension = basicScene2.AnimationExtension Dim featureLayer As ESRI.ArcGIS.Carto.IFeatureLayer = CType(layer, ESRI.ArcGIS.Carto.IFeatureLayer) ' Explicit Cast Dim featureClass As ESRI.ArcGIS.Geodatabase.IFeatureClass = featureLayer.FeatureClass Dim feature As ESRI.ArcGIS.Geodatabase.IFeature = featureClass.GetFeature(featureID) ' Get the geometry of the line feature Dim geometry As ESRI.ArcGIS.Geometry.IGeometry = feature.Shape ' Create AGAnimationUtils and AGImportPathOptions objects Dim AGAnimationUtils As ESRI.ArcGIS.Animation.IAGAnimationUtils = New ESRI.ArcGIS.Animation.AGAnimationUtilsClass Dim AGImportPathOptions As ESRI.ArcGIS.Animation.IAGImportPathOptions = New ESRI.ArcGIS.Animation.AGImportPathOptionsClass ' Set properties for AGImportPathOptions AGImportPathOptions.BasicMap = CType(globe, ESRI.ArcGIS.Carto.IBasicMap) ' Explicit Cast AGImportPathOptions.AnimationTracks = CType(globe, ESRI.ArcGIS.Animation.IAGAnimationTracks) ' Explicit Cast AGImportPathOptions.AnimationType = New ESRI.ArcGIS.GlobeCore.AnimationTypeGlobeCameraClass AGImportPathOptions.AnimatedObject = globe.GlobeDisplay.ActiveViewer.Camera AGImportPathOptions.PathGeometry = geometry AGImportPathOptions.ConversionType = ESRI.ArcGIS.Animation.esriFlyFromPathType.esriFlyFromPathObsAndTarget AGImportPathOptions.LookaheadFactor = 0.05 AGImportPathOptions.RollFactor = 0 AGImportPathOptions.AnimationEnvironment = animationExtension.AnimationEnvironment Dim AGAnimationContainer As ESRI.ArcGIS.Animation.IAGAnimationContainer = animationExtension.AnimationTracks.AnimationObjectContainer ' Call "CreateFlybyFromPath" AGAnimationUtils.CreateFlybyFromPath(AGAnimationContainer, AGImportPathOptions) End Sub