1 | import { EventsKey } from '../events';
|
2 | import BaseEvent from '../events/Event';
|
3 | import { Extent } from '../extent';
|
4 | import Feature from '../Feature';
|
5 | import Geometry from '../geom/Geometry';
|
6 | import { ObjectEvent } from '../Object';
|
7 | import { Pixel } from '../pixel';
|
8 | import PluggableMap, { FrameState } from '../PluggableMap';
|
9 | import RenderEvent from '../render/Event';
|
10 | import LayerRenderer from '../renderer/Layer';
|
11 | import Source from '../source/Source';
|
12 | import State_1 from '../source/State';
|
13 | import { State as State_2 } from '../View';
|
14 | import BaseLayer from './Base';
|
15 |
|
16 | export 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 | }
|
30 | export type RenderFunction = (p0: FrameState) => HTMLElement;
|
31 | export 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 | }
|
44 | export 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 | */
|
136 | export function inView(layerState: State, viewState: State_2): boolean;
|