ArcGlobe三维开发之九————由指定路径创建动画(实现)
来源:互联网 发布:江苏省软件企业协会 编辑:程序博客网 时间:2024/04/28 17:17
上一篇博文主要介绍了根据路径实现飞行动画的接口,本篇博文则讲解其实现过程。这里我封装了一个生成动画的类,用于动画的操作,目前只是实现了动画的生成,动画的保存以及动画的加载,后面的博文再陆续探讨动画的播放控制等功能。创建动画类代码如下:
/// <summary> /// 根据路径创建飞行动画 /// </summary> class AnimationCreator { #region"Create Animation from Path" ///<summary> 由路径来创建一个Camera动画.这条路径有图层提供一条三维线要素</summary> /// ///<param name="globe">IGlobe接口</param> ///<param name="layer">一个包含PolyLine的ILayer接口</param> ///<param name="featureID">包含路径的要素ID.Example: 123</param> /// ///<remarks></remarks> public void CreateAnimationFromPath () { IGlobeDisplay globeDisplay = pGlobe.GlobeDisplay; IScene scene = globeDisplay.Scene; // 获取动画扩展 IBasicScene2 basicScene2 = scene as IBasicScene2; IAnimationExtension animationExtension = basicScene2.AnimationExtension; //获取路径 IFeatureLayer featureLayer = pLayer as IFeatureLayer; IFeatureClass featureClass = featureLayer.FeatureClass; IFeature feature = featureClass.GetFeature(pFeatureID); IGeometry geometry = feature.Shape; //创建AGAnimationUtils和AGImportPathOptions对象 ESRI.ArcGIS.Animation.IAGAnimationUtils agAnimationUtils = new AGAnimationUtilsClass(); ESRI.ArcGIS.Animation.IAGImportPathOptions agImportPathOptions = new AGImportPathOptionsClass(); // 设置AGImportPathOptions的属性 agImportPathOptions.BasicMap = (IBasicMap)pGlobe; agImportPathOptions.AnimationTracks = (IAGAnimationTracks)pGlobe; agImportPathOptions.AnimationType = new AnimationTypeGlobeCameraClass(); agImportPathOptions.AnimatedObject = pGlobe.GlobeDisplay.ActiveViewer.Camera; //动画对象 agImportPathOptions.PathGeometry = geometry; //动画轨迹 agImportPathOptions.ConversionType = ESRI.ArcGIS.Animation.esriFlyFromPathType.esriFlyFromPathObsAndTarget; agImportPathOptions.LookaheadFactor = 0.05; agImportPathOptions.RollFactor = 0; agImportPathOptions.AnimationEnvironment = animationExtension.AnimationEnvironment; IAGAnimationContainer AGAnimationContainer = animationExtension.AnimationTracks.AnimationObjectContainer; //创建并保存动画 agAnimationUtils.CreateFlybyFromPath(AGAnimationContainer,agImportPathOptions); if (System.IO.File.Exists(SaveFilePath)) { System.IO.File.Delete(SaveFilePath); agAnimationUtils.SaveAnimationFile(AGAnimationContainer,SaveFilePath,esriArcGISVersion.esriArcGISVersion10); } } #endregion }把生成的.aga文件导入即可播放。效果图如下:
2 0
- ArcGlobe三维开发之九————由指定路径创建动画(实现)
- ArcGlobe三维开发之八————由指定路径创建动画(接口)
- ArcGlobe三维开发之六——动画(前言)
- ArcGlobe三维开发之十三——加载保存动画
- ArcGlobe三维开发之七————动画的两种实现方式
- ArcGlobe三维开发之十四————播放动画
- ArcGlobe三维开发之二——IGlobeLayerProperties接口
- ArcGlobe三维开发之十——IGlobeDisplayRendering2 接口
- ArcGlobe三维开发之十七——书签
- ArcGlobe三维开发之十九——GlobeControl与MapControl的二三维联动
- ArcGlobe三维开发之二十——输电线路二三维交互选线
- ArcGlobe三维开发之三——3D符号的现实单位显示
- ArcGlobe三维开发之四——设置globe图层的缓存属性)
- ArcGlobe三维开发之五——获取并设置Globe图层的叠加次序
- ArcGlobe三维开发之十一——3D符号化(接口)
- ArcGlobe三维开发之十五——使用对话框设置坐标参考系(ISpatialReferenceDialog2)
- ArcGlobe三维开发之十六——加载和保存3dd文件
- ArcGlobe三维开发之十二——3D符号化(添加3D符号)
- jquery验证,修改页面传值问题
- C语言IO详解
- w3c div教学内容中的 div 透明模块
- POJ 1088 DP
- Maven解决Missing artifact com.sun:tools:jar:1.5.0错误
- ArcGlobe三维开发之九————由指定路径创建动画(实现)
- Python正则表达式如何进行字符串替换
- 你幸福的背后,是我孤独的背影
- Android的monkeyrunner 工具
- 小数在计算机中的存储形式
- 某坑爹公司的笔记_Day02
- ZXing二维码扫描
- EXT核心API详解(二)-Array/Date/Function/Number/S
- 面试题总结