mirror of
https://github.com/a-nyx/maputnik-with-pmtiles.git
synced 2025-01-08 05:00:55 +01:00
37 lines
1,002 B
JavaScript
37 lines
1,002 B
JavaScript
|
import randomColor from 'randomcolor'
|
||
|
import Color from 'color'
|
||
|
|
||
|
import stylegen from 'mapbox-gl-inspect/lib/stylegen'
|
||
|
import colors from 'mapbox-gl-inspect/lib/colors'
|
||
|
|
||
|
export function colorHighlightedLayer(layer) {
|
||
|
if(!layer || layer.type === 'background' || layer.type === 'raster') return null
|
||
|
|
||
|
function changeLayer(l) {
|
||
|
if(layer.filter) {
|
||
|
l.filter = layer.filter
|
||
|
} else {
|
||
|
delete l['filter']
|
||
|
}
|
||
|
l.id = l.id + '_highlight'
|
||
|
return l
|
||
|
}
|
||
|
|
||
|
const color = colors.brightColor(layer.id, 1)
|
||
|
const layers = []
|
||
|
|
||
|
if(layer.type === "fill" || layer.type === 'fill-extrusion') {
|
||
|
return changeLayer(stylegen.polygonLayer(color, color, layer.source, layer['source-layer']))
|
||
|
}
|
||
|
|
||
|
if(layer.type === "symbol" || layer.type === 'circle') {
|
||
|
return changeLayer(stylegen.circleLayer(color, layer.source, layer['source-layer']))
|
||
|
}
|
||
|
|
||
|
if(layer.type === 'line') {
|
||
|
return changeLayer(stylegen.lineLayer(color, layer.source, layer['source-layer']))
|
||
|
}
|
||
|
|
||
|
return null
|
||
|
}
|