Styling layers
Understanding layer styles
A layer's style is defined in a JSON-based called the Felt Style Language, or FSL for short. Editors can view the current style of a layer inside a Felt map by clicking on Actions > Edit styles
in a layer's overflow menu (three dots).
Here is an example of a simple visualization, expressed in FSL:
{
"config": {"labelAttribute": ["type"]},
"legend": {},
"paint": {
"color": "blue",
"opacity": 0.9,
"size": 30,
"strokeColor": "auto",
"strokeWidth": 1
},
"type": "simple",
"version": "2.1"
}
Fetching a layer's current style
A layer's FSL can be retrieved by performing a simple GET
request to a layer's endpoint:
# Your API token should look like this:
# FELT_API_TOKEN="felt_pat_ABCDEFUDQPAGGNBmX40YNhkCRvvLI3f8/BCwD/g8"
FELT_API_TOKEN="<YOUR_API_TOKEN>"
MAP_ID="<YOUR_MAP_ID>"
LAYER_ID="<YOUR_LAYER_ID>"
curl -L \
-H "Authorization: Bearer ${FELT_API_TOKEN}" \
"https://felt.com/api/v2/maps/${MAP_ID}/layers/${LAYER_ID}"
Updating an existing layer's style
To update a layer's style, we can send a POST
request with the new FSL to the same layer's /update_style
endpoint.
curl -L \
-X POST \
"https://felt.com/api/v2/maps/${MAP_ID}/layers/${LAYER_ID}/update_style" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${FELT_API_TOKEN}" \
--data '{"style": {"paint": {"color": "green", "opacity": 0.9, "size": 30, "strokeColor": "auto", "strokeWidth": 1}, "legend": {}, "type": "simple", "version": "2.1"}}'
FSL examples
You can find examples of FSL for different visualization types in the Felt Style Language section of these docs:
Simple visualizations: same color and size for all features (vector) or pixels (raster).
Categorical visualizations: different color per feature or pixel, based on a categorical attribute
Numeric visualizations: different color or size per feature or pixel, based on a numeric attribute.
Heatmaps: a density-based visualization style, for vector point layers.
Hillshade: a special kind of visualization for raster elevation layers.
Last updated
Was this helpful?