小编给大家分享一下mapbox-gl开发中如何集成deck.gl,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
deck.gl是由uber开发出来的基于WebGL的开源大数据量可视化框架,具有提供不同类型可视化图层,能够和mapbox-gl集成。 https://github.com/visgl/deck.gl
deck.gl和mapbox-gl集成有两种方式:
1、以扩展图层的形式,将deck.gl作为mapbox-gl的一个图层加载进去,这里是mapbox-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不能支持中文注记的显示,这个在使用中要注意。 看完了这篇文章,相信你对“mapbox-gl开发中如何集成deck.gl”有了一定的了解,如果想了解更多相关知识,欢迎关注天达云行业资讯频道,感谢各位的阅读!