Deck.gl,如何根据列中的值定义不同颜色的散点图
Deck.gl, how to define different colors of scatter plot based on values from a column
这实际上是我的第一个 JS 代码,所以请耐心等待,我设法改编了 Deck.Gl 中的示例以显示散点图,现在我不确定如何根据列 "Status" 的值,我知道如何为 1 个值执行此操作,但不确定如何使用 if then else here
执行其余操作
getFillColor: d => (d[2] === '1-pile' ? [0, 128, 255] : [255, 100, 128])
这是一个完整的重现示例
<html>
<head>
<title>deck.gl solar Farm Example</title>
<script src="https://unpkg.com/deck.gl@^7.0.0/dist.min.js"></script>
<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v0.50.0/mapbox-gl.js"></script>
</head>
<body>
<div id="container"></div>
</body>
<script type="text/javascript">
const {DeckGL, ScatterplotLayer} = deck;
new DeckGL({
mapboxApiAccessToken: 'xxxxx',
mapStyle: 'mapbox://styles/mapbox/satellite-streets-v9',
longitude: 5.2,
latitude: 35.49,
zoom: 15,
minZoom: 5,
maxZoom: 20,
pitch: 40.5,
layers:[
new ScatterplotLayer({
id: 'scatter-plot',
data: 'https://raw.githubusercontent.com/djouallah/interactivie_map/master/data.json',
radiusScale: 3,
radiusMinPixels: 0.25,
getPosition: d => [d[0], d[1], 0],
getFillColor: d => (d[3] === '1-pile' ? [0, 128, 255] : [255, 100, 128])
})
]
});
</script>
</html>
一个简单的解决方案(我也不是 javascript 开发人员)可能是创建一个 returns 颜色基于变量
的函数
function get_colour( d ) {
if( d === '1-pile' ) {
return [0,128,255]
} else if ( d === '2-Tracker') {
return [255,100,128]
} else if ( d === '3-module') {
return [128, 128, 128]
} else {
return [255, 255, 255]
}
}
然后你可以为 getFillColor
属性调用它
getFillColor: d => get_colour( d[3] )
这实际上是我的第一个 JS 代码,所以请耐心等待,我设法改编了 Deck.Gl 中的示例以显示散点图,现在我不确定如何根据列 "Status" 的值,我知道如何为 1 个值执行此操作,但不确定如何使用 if then else here
执行其余操作getFillColor: d => (d[2] === '1-pile' ? [0, 128, 255] : [255, 100, 128])
这是一个完整的重现示例
<html>
<head>
<title>deck.gl solar Farm Example</title>
<script src="https://unpkg.com/deck.gl@^7.0.0/dist.min.js"></script>
<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v0.50.0/mapbox-gl.js"></script>
</head>
<body>
<div id="container"></div>
</body>
<script type="text/javascript">
const {DeckGL, ScatterplotLayer} = deck;
new DeckGL({
mapboxApiAccessToken: 'xxxxx',
mapStyle: 'mapbox://styles/mapbox/satellite-streets-v9',
longitude: 5.2,
latitude: 35.49,
zoom: 15,
minZoom: 5,
maxZoom: 20,
pitch: 40.5,
layers:[
new ScatterplotLayer({
id: 'scatter-plot',
data: 'https://raw.githubusercontent.com/djouallah/interactivie_map/master/data.json',
radiusScale: 3,
radiusMinPixels: 0.25,
getPosition: d => [d[0], d[1], 0],
getFillColor: d => (d[3] === '1-pile' ? [0, 128, 255] : [255, 100, 128])
})
]
});
</script>
</html>
一个简单的解决方案(我也不是 javascript 开发人员)可能是创建一个 returns 颜色基于变量
的函数function get_colour( d ) {
if( d === '1-pile' ) {
return [0,128,255]
} else if ( d === '2-Tracker') {
return [255,100,128]
} else if ( d === '3-module') {
return [128, 128, 128]
} else {
return [255, 255, 255]
}
}
然后你可以为 getFillColor
属性调用它
getFillColor: d => get_colour( d[3] )