SuperMap iMobile for Android中模型按照指定路径运动

文章目录


一、在iDesktopX中创建kml并添加模型

1、新建球面场景

2、新建kml

3、添加模型

这里添加静态模型和轨迹模型均可

支持:.fbx、.3ds、.obj、.dae、.x、.osgb、.stl、.off、.gltf、.glb、.s3mb、.osg、.s3m、.sgm、.mesh格式模型

二、将kml文件以及模型文件拷贝到手机指定目录中

三、iMobile场景中加载kml图层

java 复制代码
		//初始化场景
		public SceneControl mSceneControl;
		mSceneControl = (SceneControl) findViewById(R.id.sceneControl);
		//kml图层添加到场景中
		Path = "/sdcard/SampleData/CBD_android/files/";
		mSceneControl.getScene().getLayers().addLayerWith(Path + "kml/test_1.kml", Layer3DType.KML, true,
				"NodeAnimation");

四、让模型动起来

1、获取场景中的kml图层并定位

java 复制代码
		Layer3D layer3d = mSceneControl.getScene().getLayers().get("NodeAnimation");
        mSceneControl.getScene().ensureVisible(layer3d);

2、获取模型并让他动起来

java 复制代码
		//获取GeoPlacemark 
		GeoPlacemark placemark = (GeoPlacemark) ((Feature3D)mSceneControl.getScene().getLayers().get(0).getFeatures().get(0)).getGeometry();
		GeoModel3D myGeoModel = (GeoModel3D) placemark.getGeometry();
		//获取三维模型对象的节点动画
		nodeAnimation = myGeoModel.getNodeAnimation();
		//设置节点动画的播放模式
		nodeAnimation.setPlayMode(nodeAnimationPlayMode);
		//这里的geoline3d为模型的运动路线
		if (geoline3d != null) {
			//设置获取节点动画运行周期的时长,单位:秒。
			nodeAnimation.setLength(mTime);
			Log.v("lzw", "startnodeAnimation mTime=" + mTime);
			//开启节点动画
			nodeAnimation.setEnabled(true);
			//设置节点动画的运动轨迹,目前只接受类型为 GeoLine3D的参数,其他类型无效。
			nodeAnimation.setTrack(geoline3d);
		} else {
			nodeAnimation.setEnabled(false);

		}

五、效果

节点动画

相关推荐
JMchen1231 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
crmscs2 小时前
剪映永久解锁版/电脑版永久会员VIP/安卓SVIP手机永久版下载
android·智能手机·电脑
localbob2 小时前
杀戮尖塔 v6 MOD整合版(Slay the Spire)安卓+PC端免安装中文版分享 卡牌肉鸽神作!杀戮尖塔中文版,电脑和手机都能玩!杀戮尖塔.exe 杀戮尖塔.apk
android·杀戮尖塔apk·杀戮尖塔exe·游戏分享
机建狂魔2 小时前
手机秒变电影机:Blackmagic Camera + LUT滤镜包的专业级视频解决方案
android·拍照·摄影·lut滤镜·拍摄·摄像·录像
hudawei9962 小时前
flutter和Android动画的对比
android·flutter·动画
lxysbly4 小时前
md模拟器安卓版带金手指2026
android
儿歌八万首4 小时前
硬核春节:用 Compose 打造“赛博鞭炮”
android·kotlin·compose·春节
消失的旧时光-19437 小时前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
Jinkxs7 小时前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&7 小时前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin