原文:https://blog.csdn.net/wclwksn2019/article/details/109350837
引入deck.gl使用的图层:
const {MapboxLayer,TripsLayer} = deck;
定义一个deck.gl的mapbox自定义图层:
//定义当前时间,这个时间的变化实现轨迹动态效果
var time = 100;
myDeckLayer = new MapboxLayer({
id: 'mydecklayer',
//设置图层类型为轨迹图
type: TripsLayer,
//使用trip数据
data: tripdata,
//获得数据中的路线和时间数据
getPath: d =>{
return d.path;
},
getTimestamps: d => d.timestamps,
//设置轨迹颜色、透明度、长度等信息
getColor: [253, 128, 0],
opacity: 0.5,
widthMinPixels: 5,
rounded: true,
trailLength: 100,
//使用time变量,之后变化time的值实现动态效果
currentTime: time
});
//mapbox-gl添加图层
map.addLayer(myDeckLayer);
//循环修改时间,实现轨迹的动态效果
function animate() {
time = (time+1.5)%1800;
myDeckLayer.setProps({ currentTime: time });
requestAnimationFrame(animate);
}