In this case, there are multiple types filtered from the same layer. I want to assign each type a unique color.
If/else conditions with a fallback. (following this example)
{
dataLayer: `admin`,
symbolizer: new LineSymbolizer({
color: (p:any) => {
if (p.admin_level === 0){
return "hsl(0,100%,50%)"
} else {
if (p.admin_level === 1) return "hsl(80,80%,80%)"
return "hsl(242,100%,50%)"
}
},
width: 2,
opacity: 0.4,
}),
filter: (f) =>
f.admin_level === 0 ||
f.admin_level === 1,
},
Maybe try a condition with a fallback. Like this
{
dataLayer: `admin`,
symbolizer: new LineSymbolizer({
color: (p:any) => {
if (p.admin_level === 0) return "hsl(0,100%,50%)"
return "hsl(80,80%,80%)"
},
width: 2,
opacity: 0.4,
}),
filter: (f) =>
f.admin_level === 0 ||
f.admin_level === 1,
},
Maybe I have to use a color varaible instead of hsl.
{
dataLayer: `admin`,
symbolizer: new LineSymbolizer({
color: (p:any) => {
if (p.admin_level === 0) return params.boundaries0
return params.boundaries1
},
width: 2,
opacity: 0.4,
}),
filter: (f) =>
f.admin_level === 0 ||
f.admin_level === 1,
},
Should it be:
color: (p) =>
color: (p:any) => { if (p["admin_level"] == 0 { ...
- does it matter if it is
==
or===
?
Tried a few other variations of the same idea. Really not sure what I'm doing wrong!
hiii @bdon! yes! i'm currently just going through all my filters and refactoring with the new pattern to get the map rendering again. you wanna meet next week? i also wanted to talk to you about some thoughts around opacity... i'm composing an email but it is still in draft form might be easier to talk through. let me know!