SuperMap iClient3D for WebGL教程 轨迹动画(二) -KML

SuperMap iClient3D for WebGL教程 轨迹动画(二)KML

WuYK

上篇文章我们说到实现模型动态的一个方法是通过Entity API实现,通过Cesium自带的property机制实现模型的动态效果,这次我们接着讲解第二个方法,通过KML文件实现动态效果

关于如何通过Entity API实现的,可以参考此链接https://blog.csdn.net/supermapsupport/article/details/103006226

                          **本篇文章主要介绍如何通过KML实现动态效果**

之前也有很多人问过我,为什么我在超图桌面新建的KML,也绘制了轨迹,在WebGL端动不起来呢
那么,今天我们就介绍如何通过桌面端新建的KML文件实现动态效果

关于这个问题,我们首先看一下桌面端的KML文件内容是怎么写的

在这里插入图片描述
在这里插入图片描述

我们再看下Google上面“能动的” KML文件是什么样
在这里插入图片描述

对比一下,其实差别主要是以下两点

一.头文件引用不一样
桌面KML
在这里插入图片描述
GoogleKML
在这里插入图片描述
二.标签Location不一样
桌面KML
在这里插入图片描述
GoogleKML
在这里插入图片描述

从这里我们可以看出,从超图桌面端导出的KML,虽然在桌面端能够实现节点动画的效果,但是在文档里并没有记录满足WebGL动态效果的标签
所以,我们需要对其加上这两条,一个是头文件的引入,还有一个是设置时间节点标签,这样就可以实现在WebGL端动态的效果啦,同时需要注意,KML中的轨迹动画只支持GLTF格式的,S3M格式模型是只能放静态的,如果要对S3M做轨迹动画,请看下一篇文章,轨迹动画(三)-DynamicLayer3D。

补充问题

1.KML动态模型下面会有一条轨迹线,这个怎么去除?
我们在WebGL端加载kml文件有一个回调函数,从回调函数中获取entity模型对象,设置entity.path.show = false即可
2.在kml文件中修改方向标签Orientation没有效果?
同样,在回调函数中获取entity,修改entity.orientation即可
3.怎么让kml模型到了终点就停止运动,而不是反复重复运动?
在回调函数中设置 viewer.clock.clockRange=Cesium.ClockRange.CLAMPED;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值