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!
@bdon ok! gonna take a stab at it today.
in the notebook, it looks like the admin line color is not working... it looks as though both 0's and 1's are using the color defined for 1. If you switch to another color (not blue try hsl(113,100%,50%)) you'll see what i mean.
will report back later on how its going. thanks again!