-
-
Notifications
You must be signed in to change notification settings - Fork 823
/
Copy pathcreate_style_layer.ts
42 lines (39 loc) · 1.78 KB
/
create_style_layer.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import {CircleStyleLayer} from './style_layer/circle_style_layer';
import {HeatmapStyleLayer} from './style_layer/heatmap_style_layer';
import {HillshadeStyleLayer} from './style_layer/hillshade_style_layer';
import {ColorReliefStyleLayer} from './style_layer/color_relief_style_layer';
import {FillStyleLayer} from './style_layer/fill_style_layer';
import {FillExtrusionStyleLayer} from './style_layer/fill_extrusion_style_layer';
import {LineStyleLayer} from './style_layer/line_style_layer';
import {SymbolStyleLayer} from './style_layer/symbol_style_layer';
import {BackgroundStyleLayer} from './style_layer/background_style_layer';
import {RasterStyleLayer} from './style_layer/raster_style_layer';
import {CustomStyleLayer, type CustomLayerInterface} from './style_layer/custom_style_layer';
import type {LayerSpecification} from '@maplibre/maplibre-gl-style-spec';
export function createStyleLayer(layer: LayerSpecification | CustomLayerInterface) {
if (layer.type === 'custom') {
return new CustomStyleLayer(layer);
}
switch (layer.type) {
case 'background':
return new BackgroundStyleLayer(layer);
case 'circle':
return new CircleStyleLayer(layer);
case 'color-relief':
return new ColorReliefStyleLayer(layer);
case 'fill':
return new FillStyleLayer(layer);
case 'fill-extrusion':
return new FillExtrusionStyleLayer(layer);
case 'heatmap':
return new HeatmapStyleLayer(layer);
case 'hillshade':
return new HillshadeStyleLayer(layer);
case 'line':
return new LineStyleLayer(layer);
case 'raster':
return new RasterStyleLayer(layer);
case 'symbol':
return new SymbolStyleLayer(layer);
}
}