首页 / 浏览问题 / 其他 / 问题详情
上次的小车动画问题
30EXP 2017年05月16日
上次问了那个模拟小车动画的问题,因为不是很明白上次技术人员的回答,希望这次能够说得详细一点。我的理解是在桌面软件上制作线数据集,然后添加time和featureid属性,那个time和featurid属性所代表的值是什么?为什么添加上去没有效果呢?

2 个回答

iClient for JavaScript的动画图层类参考如下:
http://support.supermap.com.cn:8090/iserver/iClient/forJavaScript/apidoc/files/SuperMap/Layer/AnimatorVector-js.html#SuperMap.Layer.AnimatorVector.SuperMap.Layer.AnimatorVector
建议先仔细阅读

实现过程大概类似CSS渐变动画,举个例子,如下两个点:
a(0,0) b(10,10)
a要运动到c(-20,-20),b要运动到d(30,30)
那么这时会有两个动画,a到c的动画叫动画1,b到d的叫动画2。

  动画图层的 featureIdName 属性即指定使用哪个属性标识动画,即哪些属性值的要素在同一个动画,默认是 “FEATUREID”,比如,a和c都应该有 “FEATUREID” 属性,并且属性值相同,这样就唯一确定了动画1由a和c两点组成;同样b到d也应有这个属性且值相同。

  再说时间,是用于控制播放过程和播放时间的,具体多少毫秒的播放时间,这里不再解释,参考类参考。
  上面的例子,如果a的标记是0时刻,c是1时刻,那么动画1就是从a的位置每帧加speed时间一直过渡到b的位置,反过来,那么动画1就会从c的位置过渡到a;动画1和动画2可以不同时开始和结束。
  动画图层timeName属性指定标识要素时刻的字段,默认是 “TIME”,所以a和c都应有这个属性,并指定值,值为任意数字,没有任何意义,比如开始时间是 100.0 等于a的TIME值,速度是50.0,c的TIME值是200.0,那么下一帧代表的是150.0时刻,,这时动画显示的点大概在a、c两点中间。

1,780EXP 2017年05月17日
好的,谢谢您的回答.我还有一个问题一直不明白,您说的“FEATUREID” 属性和“TIME”属性,我在模拟小车的那个地图集上面找到了对应的图层,但是我看他的属性里面发现并没有这两个属性,所以我就一直不是很清楚。希望您能再帮我一次 谢谢!

    就是这样

这俩属性是在前端设置给动画图层识别的,和具体数据集并没有任何关系,数据来源可以是查询数据集也可以是查询数据库、new的要素等等。也就是只需要给动画图层符合要求的数据就行,数据来源动画图层并不关心。

当然,要是你数据集里就有这俩属性了,查询火来的要素也就可以不用设置这俩属性了,只需要知道,动画图层接受什么类型的数据,就给它什么类型的数据就行;动画图层接受的数据类型是iClient for JavaScript的带特定属性的Feature对象。
好的 谢谢你 我已经知道怎么回事了
您好,请问具体用的什么产品呢?

小车动画一般是节点动画。KML图层添加一个sgm模型,设置一个运动轨迹,就可以让小车运动了。请在产品手册搜索关键字NodeAnimation了解更多。
3,389EXP 2017年05月17日
您好,我说的是通过js和iserver在网页上模拟小车运动轨迹的
您好,请问是二维还是三维产品
...