您好,可以使用这些获取方法
var featureComps = feature.geometry.components;// for (var k = 0, len = featureComps.length; k < len; k++) { var car = new SuperMap.Feature.Vector(featureComps[k].clone(), { FEATUREID: feature.id, //根据节点生成时间 TIME: k },styleCar1 ); animatorVector.addFeatures(car);
那这个节点时间呢
iClient for JavaScript的动画图层类参考如下: http://iclient.supermap.io/libs/iclient8c/apidoc/files/SuperMap/Layer/AnimatorVector-js.html 建议先仔细阅读 实现过程大概类似CSS渐变动画,举个例子,如下两个点: a(0,0) b(10,10) a要运动到c(-20,-20),b要运动到d(30,30) 那么这时会有两个动画,a到c的动画叫动画1,b到d的叫动画2。 动画图层的 featureID 属性即指定使用哪个属性标识动画,即哪些属性值的要素在同一个动画,默认是 要素的属性“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两点中间。