# Layers

***

Layers in a Felt map hold geospatial data, but also configure how the data is rendered both on the map and in the legend. The data can be vector data such as Points, Lines, or Polygons, or raster data such as satellite images.

Each Layer can be grouped under a LayerGroup, and has associated LegendItems that represent how the layer is rendered in the legend.

You can control the visibility of layers, layer groups, and legend items using the [\`setLayerVisibility\`](https://developers.felt.com/js-sdk-api-reference/layerscontroller#setlayervisibility), [\`setLayerGroupVisibility\`](https://developers.felt.com/js-sdk-api-reference/layerscontroller#setlayergroupvisibility), and [\`setLegendItemVisibility\`](https://developers.felt.com/js-sdk-api-reference/layerscontroller#setlegenditemvisibility) methods.

When a Layer is styled to as categorical data or "classed" numeric data, there will be a `LegendItem` for each category or class. Each `LegendItem` can be controlled for visibility independently of the Layer, so you can turn on and off each category or class individually.

## Controller

* [LayersController](https://developers.felt.com/js-sdk-api-reference/layers/layerscontroller)

## Features

* [LayerFeature](https://developers.felt.com/js-sdk-api-reference/layers/layerfeature)
* [RasterValue](https://developers.felt.com/js-sdk-api-reference/layers/rastervalue)

## Filters

* [LayerFilters](https://developers.felt.com/js-sdk-api-reference/layers/layerfilters)
* [LayerBoundaries](https://developers.felt.com/js-sdk-api-reference/layers/layerboundaries)
* [FilterLogicGate](https://developers.felt.com/js-sdk-api-reference/layers/filterlogicgate)
* [FilterExpression](https://developers.felt.com/js-sdk-api-reference/layers/filterexpression)
* [FilterTernary](https://developers.felt.com/js-sdk-api-reference/layers/filterternary)
* [Filters](https://developers.felt.com/js-sdk-api-reference/layers/filters)
* [GeometryFilter](https://developers.felt.com/js-sdk-api-reference/layers/geometryfilter)

## Layer Groups

* [LayerGroup](https://developers.felt.com/js-sdk-api-reference/layers/layergroup)
* [GetLayerGroupsConstraint](https://developers.felt.com/js-sdk-api-reference/layers/getlayergroupsconstraint)
* [LayerGroupChangeCallbackParams](https://developers.felt.com/js-sdk-api-reference/layers/layergroupchangecallbackparams)

## Layer Schema

* [LayerSchema](https://developers.felt.com/js-sdk-api-reference/layers/layerschema)
* [LayerSchemaCommonAttribute](https://developers.felt.com/js-sdk-api-reference/layers/layerschemacommonattribute)
* [LayerSchemaNumericAttribute](https://developers.felt.com/js-sdk-api-reference/layers/layerschemanumericattribute)
* [LayerSchemaTextAttribute](https://developers.felt.com/js-sdk-api-reference/layers/layerschematextattribute)
* [LayerSchemaBooleanAttribute](https://developers.felt.com/js-sdk-api-reference/layers/layerschemabooleanattribute)
* [LayerSchemaDateAttribute](https://developers.felt.com/js-sdk-api-reference/layers/layerschemadateattribute)
* [LayerSchemaDateTimeAttribute](https://developers.felt.com/js-sdk-api-reference/layers/layerschemadatetimeattribute)
* [LayerSchemaAttribute](https://developers.felt.com/js-sdk-api-reference/layers/layerschemaattribute)

## Layer sources

* [RasterLayerSource](https://developers.felt.com/js-sdk-api-reference/layers/rasterlayersource)
* [RasterBand](https://developers.felt.com/js-sdk-api-reference/layers/rasterband)
* [GeoJsonUrlVectorSource](https://developers.felt.com/js-sdk-api-reference/layers/geojsonurlvectorsource)
* [GeoJsonDataVectorSource](https://developers.felt.com/js-sdk-api-reference/layers/geojsondatavectorsource)
* [GeoJsonFileVectorSource](https://developers.felt.com/js-sdk-api-reference/layers/geojsonfilevectorsource)
* [FeltTiledVectorSource](https://developers.felt.com/js-sdk-api-reference/layers/felttiledvectorsource)

## Layers

* [LayerCommon](https://developers.felt.com/js-sdk-api-reference/layers/layercommon)
* [RasterLayer](https://developers.felt.com/js-sdk-api-reference/layers/rasterlayer)
* [VectorLayer](https://developers.felt.com/js-sdk-api-reference/layers/vectorlayer)
* [UpdateLayerParams](https://developers.felt.com/js-sdk-api-reference/layers/updatelayerparams)
* [DataOnlyLayer](https://developers.felt.com/js-sdk-api-reference/layers/dataonlylayer)
* [GetLayersConstraint](https://developers.felt.com/js-sdk-api-reference/layers/getlayersconstraint)
* [LayerChangeCallbackParams](https://developers.felt.com/js-sdk-api-reference/layers/layerchangecallbackparams)
* [GetRenderedFeaturesConstraint](https://developers.felt.com/js-sdk-api-reference/layers/getrenderedfeaturesconstraint)
* [CreateLayersFromGeoJsonParams](https://developers.felt.com/js-sdk-api-reference/layers/createlayersfromgeojsonparams)
* [LayerProcessingStatus](https://developers.felt.com/js-sdk-api-reference/layers/layerprocessingstatus)
* [Layer](https://developers.felt.com/js-sdk-api-reference/layers/layer)

## Legend Items

* [LegendItem](https://developers.felt.com/js-sdk-api-reference/layers/legenditem)
* [LegendItemIdentifier](https://developers.felt.com/js-sdk-api-reference/layers/legenditemidentifier)
* [LegendItemsConstraint](https://developers.felt.com/js-sdk-api-reference/layers/legenditemsconstraint)
* [LegendItemChangeCallbackParams](https://developers.felt.com/js-sdk-api-reference/layers/legenditemchangecallbackparams)
* [LegendDisplay](https://developers.felt.com/js-sdk-api-reference/layers/legenddisplay)

## Stats

* [AggregationConfig](https://developers.felt.com/js-sdk-api-reference/layers/aggregationconfig)
* [MultiAggregationConfig](https://developers.felt.com/js-sdk-api-reference/layers/multiaggregationconfig)
* [ValueConfiguration](https://developers.felt.com/js-sdk-api-reference/layers/valueconfiguration)
* [GetLayerCategoriesParams](https://developers.felt.com/js-sdk-api-reference/layers/getlayercategoriesparams)
* [GetLayerCategoriesGroup](https://developers.felt.com/js-sdk-api-reference/layers/getlayercategoriesgroup)
* [GetLayerHistogramParams](https://developers.felt.com/js-sdk-api-reference/layers/getlayerhistogramparams)
* [GetLayerHistogramBin](https://developers.felt.com/js-sdk-api-reference/layers/getlayerhistogrambin)
* [GetLayerCalculationParams](https://developers.felt.com/js-sdk-api-reference/layers/getlayercalculationparams)
* [CountGridConfig](https://developers.felt.com/js-sdk-api-reference/layers/countgridconfig)
* [AggregatedGridConfig](https://developers.felt.com/js-sdk-api-reference/layers/aggregatedgridconfig)
* [GetLayerPrecomputedCalculationParams](https://developers.felt.com/js-sdk-api-reference/layers/getlayerprecomputedcalculationparams)
* [AggregationMethod](https://developers.felt.com/js-sdk-api-reference/layers/aggregationmethod)
* [PrecomputedAggregationMethod](https://developers.felt.com/js-sdk-api-reference/layers/precomputedaggregationmethod)
* [GridType](https://developers.felt.com/js-sdk-api-reference/layers/gridtype)
* [GridConfig](https://developers.felt.com/js-sdk-api-reference/layers/gridconfig)
