作者:WJH
创建动态矢量要素,可参考JavaScript API中的SuperMap.Layer.AnimatorVector,车辆监控、气象模拟等都可以实现。当前是做了一个污染源监测预警点闪烁的效果。
先创建一个矢量动画图层。初始化的时候设置所需要的rendererType(渲染类型),当前设置的是一个点闪烁、尾巴渲染:”TadpolePoint”。和timeName属性,默认值为TIME,当前设置的是自定义的图层属性-PointTime。代码如下:
mySelf.animatorVector = new SuperMap.Layer.AnimatorVector("Train", {rendererType: "TadpolePoint",timeName:"PointTime"}, {
//设置速度为每帧播放0.02小时的数据
speed: 2,
//每秒渲染10帧
frameRate:10,
//开始时间为0晨
startTime: 0,
//结束时间设置为最后运行结束的时间
endTime: 100
});
其中动态图层中包括**tail(是否开启闪烁效果,默认为true)和glint(是否开启尾巴效果,默认为true)**两个属性。如果不需要尾巴的话,就把tail设置为false就可以了。
如果想实现带运动轨迹的效果,可借鉴supermap上的实例,其效果如下:
这里稍微做了一些更改,模拟预警点闪烁,不让点移动,代码如下:
data.forEach((attr,index) =>{
attr.FEATUREID = index,attr.PointTime = 0;
var pointFeature1 = new SuperMap.Feature.Vector(new SuperMap.Geometry.Point(attr.longitude,attr.latitude),attr,mySelf.style);
attr.FEATUREID = index,attr.PointTime = 100;
var pointFeature2 = new SuperMap.Feature.Vector(new SuperMap.Geometry.Point(attr.longitude,attr.latitude),attr,mySelf.style)
mySelf.pointFeatures.push(pointFeature1,pointFeature2);
})
mySelf.animatorVector.addFeatures(mySelf.pointFeatures);
mySelf.animatorVector.renderer.tail = !mySelf.animatorVector.renderer.tail;
mySelf.animatorVector.animator.start();
把点的开始位置跟结束位置设置为同一个位置,其闪烁位置也就不变。
最后效果: