mapbox-gl开发:集成deck.gl

本文介绍了deck.gl如何与mapbox-gl集成,通过两种方式实现地图上的大数据可视化。deck.gl提供了丰富的图层类型,能够实现mapbox-gl无法直接支持的高程显示等功能。同时,指出了集成后的鼠标事件响应限制以及deck.gl不支持中文注记的显示问题。集成deck.gl可以提升地图的可视化效果,适用于大数据量的地图应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

deck.gl是由uber开发出来的基于WebGL的开源大数据量可视化框架,具有提供不同类型可视化图层,能够和mapbox-gl集成。
deck.gl项目地址:
https://github.com/visgl/deck.gl
deck.gl和mapbox-gl集成有两种方式:
1、以扩展图层的形式,将deck.gl作为mapbox-gl的一个图层加载进去,这里是mapbox-gl作为主体;

//引用mapbox-gl和deck.gl的类库
       const {  MapboxLayer,
		   ScatterplotLayer,
		    GeoJsonLayer
		  } = deck;
	const AIR_PORTS ='json数据位置'//定义deck.gl图层
             const myDeckLayer = new MapboxLayer({
			id: 'mydecklayer',
			type: GeoJsonLayer,
			data: AIR_PORTS, 
			pickable: false,
			stroked: true,
			filled: true,
			autoHighlight: false,
			highlightColor: [0, 180, 0, 200],
			extruded: false,
			lineWidthScale: 0,
			lineWidthMinPixels: 1,
			getFillColor: [0, 0, 180, 0],
			getLineColor: [255, 0, 0, 255],
			getRadius: 0,
			wireframe: false,
			getLineWidth: 10,
			getElevation: 8000  
			});

                   //初始化mapbox-gl
          let  map = new mapboxgl.Map({
           container: 'map',
           style:  mapbox地图样式配置,
		   center: [116, 37],
           zoom: 9
				});
                        //添加deck.gl图层
             map.addLayer(myDeckLayer);
                       //根据id移除图层
             map.removeLayer('mydecklayer');  

2、以deck.gl为主体,设置deck.gl中使用的地图是mapbox-gl;

//初始化deck.gl的对象,嵌入mapbox-gl的相关信息
             deckgl = new deck.DeckGL({
				container: 'map',
				mapStyle: 'mapbox-gl地图的样式',
				latitude: 36,
				longitude: 117,
				zoom: 5,
				bearing: 0,
				pitch: 30
		 });

以mapbox-gl作为主体时,添加的deck.gl的图层并不能够响应对应的鼠标事件,反之,以deck.gl作为主体,在mapbox-gl中添加的图层,也不能响应对应的鼠标事件。
集成deck.gl能够丰富地图的大数据展示效果,实现mapbox-gl本身不能实现的一些效果,增强地图的可视化效果。
比如mapbox-gl中加载的面状图层,不支持带高程的显示,但是deck.gl就能够实现。
在这里插入图片描述
不过deck.gl不能支持中文注记的显示,这个在使用中要注意。
更多的deck.gl效果,可以参见官网的例子进行集成实现。

更多文章,请关注公众号查看!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值