com.supermap.data
类 Animation
- java.lang.Object
-
- com.supermap.data.InternalHandle
-
- com.supermap.data.Animation
-
public class Animation extends com.supermap.data.InternalHandle动画信息类。动画模型效果是目前三维技术的一个热点技术。三维游戏中虚拟人物的奔跑,坦克炮塔的旋转,都是动画模型的实际应用。动画模型技术的重要意义在于使得三维场景中的模型对象运动起来,人们可以通过动画获取对象的动态视觉效果。动画模型技术应用在GIS产品中,使得地理信息系统的视觉体验更加趋向于真实。通过对动画模型的观察,使用者能够获取模型各个部位的动作信息,而不再只是静态的图像。
SuperMap GIS 对动画模型技术的实现,主要体现在对第三方动画模型的支持上。通过将第三方的动画模型文件导入,用户可以控制动画的播放,从而实现在三维场景中展现出动态的对象。
下图中活动的坦克和直升飞机便是动画模型的实际应用效果。
示意图:

实际效果:


- 示范代码:
- 以下代码示范如何在场景中显示模型动画,并对其进行设置。假设已经有一个 KML 文件(FireTruck.kml),并且由建模师制作好了一个模型 firetruck.SGM,同时获取了场景控件
sceneControl。public void animationModel(SceneControl sceneControl) { // 从场景控件获取三维场景 Scene scene = sceneControl.getScene(); // 向三维场景中添加kml文件,返回kml图层对象kmlLayer String kmlPath = "../../Models/FireTruck.kml"; Layer3D kmlLayer = scene.getLayers().add(kmlPath, Layer3DType.KML, true); // 新建GeoModel对象,并获得动画模型的路径 GeoModel geoModel = new GeoModel(); String modelPath = "../../Models/FireTruck/firetruck.SGM"; Point3D point = new Point3D(116, 39, 5); Boolean isSuccess = geoModel.fromFile(modelPath, point); if (isSuccess) { // 将模型添加进layer的features kmlLayer.getFeatures().add(geoModel); Feature3D feature = kmlLayer.getFeatures().findFeature(1, Feature3DSearchOption.ALLFEATURES); GeoModel animationModel = (GeoModel)feature.getGeometry(); // 获取Animation 对象 Animation animation = animationModel.getAnimation(); // 设置模型动画是否可用及动画模式 animation.setEnabled(true); animation.setPlayMode(PlayMode.ONCE); // 设置动画是否自动更新,及其更新时间 animation.setAutoUpdated(true); animation.update(50); // 设置动画的开始时间和结束时间,查看效果 animation.setStartTime(5000); animation.setEndTime(10000); } }
-
-
方法概要
所有方法 实例方法 具体方法 限定符和类型 方法和说明 doublegetCurrentTime()返回当前动画所在的时间位置。doublegetEndTime()返回动画的结束时间位置。doublegetLength()返回动画的时间长度,单位为毫秒。PlayModegetPlayMode()返回动画的播放模式。doublegetStartTime()返回动画的起始时间位置。booleanisAutoUpdated()返回动画播放方式是否为自动更新时间。booleanisEnabled()返回当前动画是否可用。voidsetAutoUpdated(boolean autoUpdated)设置动画播放方式是否为自动更新时间。voidsetCurrentTime(double currentTime)设置当前动画所在的时间位置。voidsetEnabled(boolean enabled)设置当前动画是否可用。voidsetEndTime(double endTime)设置动画的结束时间位置。voidsetPlayMode(PlayMode playMode)设置动画的播放模式。voidsetStartTime(double startTime)设置动画的起始时间位置。voidupdate(double offset)更新动画时间。
-
-
-
方法详细资料
-
getCurrentTime
public double getCurrentTime()
返回当前动画所在的时间位置。单位为毫秒。- 返回:
- 当前动画所在的位置。单位为毫秒。
-
setCurrentTime
public void setCurrentTime(double currentTime)
设置当前动画所在的时间位置。单位为毫秒。- 参数:
currentTime- 当前动画所在的时间位置。单位为毫秒。
-
getStartTime
public double getStartTime()
返回动画的起始时间位置。单位为毫秒。- 返回:
- 动画的起始时间位置。单位为毫秒。
-
setStartTime
public void setStartTime(double startTime)
设置动画的起始时间位置。单位为毫秒。- 参数:
startTime- 动画的起始时间位置。单位为毫秒。
-
getEndTime
public double getEndTime()
返回动画的结束时间位置。单位为毫秒。- 返回:
- 动画的结束时间位置。单位为毫秒。
-
setEndTime
public void setEndTime(double endTime)
设置动画的结束时间位置。单位为毫秒。- 参数:
endTime- 动画的结束时间位置。单位为毫秒。
-
getLength
public double getLength()
返回动画的时间长度,单位为毫秒。- 返回:
- 动画的时间长度,单位为毫秒。
-
setEnabled
public void setEnabled(boolean enabled)
设置当前动画是否可用。- 参数:
enabled- 当前动画是否可用。
-
isEnabled
public boolean isEnabled()
返回当前动画是否可用。- 返回:
- 当前动画是否可用。
-
setAutoUpdated
public void setAutoUpdated(boolean autoUpdated)
设置动画播放方式是否为自动更新时间。- 参数:
autoUpdated- 一个布尔值,表示是否自动更新时间,true 表示自动更新,false 表示不自动更新。
-
isAutoUpdated
public boolean isAutoUpdated()
返回动画播放方式是否为自动更新时间。- 返回:
- 一个布尔值,表示是否自动更新时间,true 表示自动更新,false 表示不自动更新。
-
getPlayMode
public PlayMode getPlayMode()
返回动画的播放模式。- 返回:
- 动画的播放模式。
-
setPlayMode
public void setPlayMode(PlayMode playMode)
设置动画的播放模式。- 参数:
playMode- 动画的播放模式。
-
update
public void update(double offset)
更新动画时间。- 参数:
offset- 动画在当前的位置上向前或向后移动的秒数。单位为毫秒。
-
-
Copyright © 2021–2025 SuperMap. All rights reserved.