mapbox-gl开发:deck.gl轨迹图效果

apbox-gl中能够集成deck.gl的图层,参见mapbox-gl开发:集成deck.gl,扩展集成的形式是使用mapbox-gl的自定义图层(CustomLayer),参见mapbox-gl API说明:
https://docs.mapbox.com/mapbox-gl-js/api/properties/#customlayerinterface

动态轨迹图的效果,在echarts里有,同样deck.gl中也有对应的例子。
echarts官方效果页面:
https://echarts.apache.org/examples/zh/editor.html?c=lines-bmap-effect
deck.gl的样例是TripsLayer,有时网络的原因不一定能够浏览到。
https://deck.gl/examples

在mapbox-gl集成的过程:
把官网的trips-v7.json下载下来,进行数据测试,其中的数据格式如下图,有多条这样的数据组成:
在这里插入图片描述
引入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); 
	     }

效果如下图:
在这里插入图片描述
更多文章请关注公众号查看!
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值