UNPKG

6.67 kBTypeScriptView Raw
1import { EventsKey } from '../events';
2import BaseEvent from '../events/Event';
3import { Extent } from '../extent';
4import Feature from '../Feature';
5import Geometry from '../geom/Geometry';
6import { ObjectEvent } from '../Object';
7import { Pixel } from '../pixel';
8import PluggableMap, { FrameState } from '../PluggableMap';
9import RenderEvent from '../render/Event';
10import LayerRenderer from '../renderer/Layer';
11import Source from '../source/Source';
12import State_1 from '../source/State';
13import { State as State_2 } from '../View';
14import BaseLayer from './Base';
15
16export interface Options {
17 className?: string | undefined;
18 opacity?: number | undefined;
19 visible?: boolean | undefined;
20 extent?: Extent | undefined;
21 zIndex?: number | undefined;
22 minResolution?: number | undefined;
23 maxResolution?: number | undefined;
24 minZoom?: number | undefined;
25 maxZoom?: number | undefined;
26 source?: Source | undefined;
27 map?: PluggableMap | undefined;
28 render?: RenderFunction | undefined;
29}
30export type RenderFunction = (p0: FrameState) => HTMLElement;
31export interface State {
32 layer: Layer<Source>;
33 opacity: number;
34 sourceState: State_1;
35 visible: boolean;
36 managed: boolean;
37 extent?: Extent | undefined;
38 zIndex: number;
39 maxResolution: number;
40 minResolution: number;
41 minZoom: number;
42 maxZoom: number;
43}
44export default class Layer<SourceType extends Source = Source> extends BaseLayer {
45 constructor(options: Options);
46 /**
47 * Create a renderer for this layer.
48 */
49 protected createRenderer(): LayerRenderer<Layer<Source>>;
50 /**
51 * Clean up.
52 */
53 disposeInternal(): void;
54 getFeatures(pixel: Pixel): Promise<Feature<Geometry>[]>;
55 getLayersArray(opt_array?: Layer<Source>[]): Layer<Source>[];
56 getLayerStatesArray(opt_states?: State[]): State[];
57 /**
58 * Get the renderer for this layer.
59 */
60 getRenderer(): LayerRenderer<Layer<Source>>;
61 /**
62 * Get the layer source.
63 */
64 getSource(): SourceType;
65 getSourceState(): State_1;
66 hasRenderer(): boolean;
67 /**
68 * In charge to manage the rendering of the layer. One layer type is
69 * bounded with one layer renderer.
70 */
71 render(frameState: FrameState, target: HTMLElement): HTMLElement;
72 /**
73 * Sets the layer to be rendered on top of other layers on a map. The map will
74 * not manage this layer in its layers collection, and the callback in
75 * {@link module:ol/Map#forEachLayerAtPixel} will receive null as layer. This
76 * is useful for temporary layers. To remove an unmanaged layer from the map,
77 * use #setMap(null).
78 * To add the layer to a map and have it managed by the map, use
79 * {@link module:ol/Map#addLayer} instead.
80 */
81 setMap(map: PluggableMap): void;
82 /**
83 * Set the layer source.
84 */
85 setSource(source: SourceType): void;
86 on(type: string | string[], listener: (p0: any) => any): EventsKey | EventsKey[];
87 once(type: string | string[], listener: (p0: any) => any): EventsKey | EventsKey[];
88 un(type: string | string[], listener: (p0: any) => any): void;
89 on(type: 'change', listener: (evt: BaseEvent) => void): EventsKey;
90 once(type: 'change', listener: (evt: BaseEvent) => void): EventsKey;
91 un(type: 'change', listener: (evt: BaseEvent) => void): void;
92 on(type: 'change:extent', listener: (evt: ObjectEvent) => void): EventsKey;
93 once(type: 'change:extent', listener: (evt: ObjectEvent) => void): EventsKey;
94 un(type: 'change:extent', listener: (evt: ObjectEvent) => void): void;
95 on(type: 'change:maxResolution', listener: (evt: ObjectEvent) => void): EventsKey;
96 once(type: 'change:maxResolution', listener: (evt: ObjectEvent) => void): EventsKey;
97 un(type: 'change:maxResolution', listener: (evt: ObjectEvent) => void): void;
98 on(type: 'change:maxZoom', listener: (evt: ObjectEvent) => void): EventsKey;
99 once(type: 'change:maxZoom', listener: (evt: ObjectEvent) => void): EventsKey;
100 un(type: 'change:maxZoom', listener: (evt: ObjectEvent) => void): void;
101 on(type: 'change:minResolution', listener: (evt: ObjectEvent) => void): EventsKey;
102 once(type: 'change:minResolution', listener: (evt: ObjectEvent) => void): EventsKey;
103 un(type: 'change:minResolution', listener: (evt: ObjectEvent) => void): void;
104 on(type: 'change:minZoom', listener: (evt: ObjectEvent) => void): EventsKey;
105 once(type: 'change:minZoom', listener: (evt: ObjectEvent) => void): EventsKey;
106 un(type: 'change:minZoom', listener: (evt: ObjectEvent) => void): void;
107 on(type: 'change:opacity', listener: (evt: ObjectEvent) => void): EventsKey;
108 once(type: 'change:opacity', listener: (evt: ObjectEvent) => void): EventsKey;
109 un(type: 'change:opacity', listener: (evt: ObjectEvent) => void): void;
110 on(type: 'change:source', listener: (evt: ObjectEvent) => void): EventsKey;
111 once(type: 'change:source', listener: (evt: ObjectEvent) => void): EventsKey;
112 un(type: 'change:source', listener: (evt: ObjectEvent) => void): void;
113 on(type: 'change:visible', listener: (evt: ObjectEvent) => void): EventsKey;
114 once(type: 'change:visible', listener: (evt: ObjectEvent) => void): EventsKey;
115 un(type: 'change:visible', listener: (evt: ObjectEvent) => void): void;
116 on(type: 'change:zIndex', listener: (evt: ObjectEvent) => void): EventsKey;
117 once(type: 'change:zIndex', listener: (evt: ObjectEvent) => void): EventsKey;
118 un(type: 'change:zIndex', listener: (evt: ObjectEvent) => void): void;
119 on(type: 'error', listener: (evt: BaseEvent) => void): EventsKey;
120 once(type: 'error', listener: (evt: BaseEvent) => void): EventsKey;
121 un(type: 'error', listener: (evt: BaseEvent) => void): void;
122 on(type: 'postrender', listener: (evt: RenderEvent) => void): EventsKey;
123 once(type: 'postrender', listener: (evt: RenderEvent) => void): EventsKey;
124 un(type: 'postrender', listener: (evt: RenderEvent) => void): void;
125 on(type: 'prerender', listener: (evt: RenderEvent) => void): EventsKey;
126 once(type: 'prerender', listener: (evt: RenderEvent) => void): EventsKey;
127 un(type: 'prerender', listener: (evt: RenderEvent) => void): void;
128 on(type: 'propertychange', listener: (evt: ObjectEvent) => void): EventsKey;
129 once(type: 'propertychange', listener: (evt: ObjectEvent) => void): EventsKey;
130 un(type: 'propertychange', listener: (evt: ObjectEvent) => void): void;
131}
132/**
133 * Return true if the layer is visible and if the provided view state
134 * has resolution and zoom levels that are in range of the layer's min/max.
135 */
136export function inView(layerState: State, viewState: State_2): boolean;