UNPKG

ol

Version:

OpenLayers mapping library

113 lines 5.2 kB
export default LayerRenderer; /** * @template {import("../layer/Layer.js").default} LayerType */ declare class LayerRenderer<LayerType extends import("../layer/Layer.js").default<any>> extends Observable { /** * @param {LayerType} layer Layer. */ constructor(layer: LayerType); /** @private */ private boundHandleImageChange_; /** * @private * @type {LayerType} */ private layer_; /** * Asynchronous layer level hit detection. * @param {import("../pixel.js").Pixel} pixel Pixel. * @return {Promise<Array<import("../Feature").default>>} Promise that resolves with * an array of features. */ getFeatures(pixel: number[]): Promise<import("../Feature.js").default<any>[]>; /** * Determine whether render should be called. * @abstract * @param {import("../PluggableMap.js").FrameState} frameState Frame state. * @return {boolean} Layer is ready to be rendered. */ prepareFrame(frameState: import("../PluggableMap.js").FrameState): boolean; /** * Render the layer. * @abstract * @param {import("../PluggableMap.js").FrameState} frameState Frame state. * @param {HTMLElement} target Target that may be used to render content to. * @return {HTMLElement} The rendered element. */ renderFrame(frameState: import("../PluggableMap.js").FrameState, target: HTMLElement): HTMLElement; /** * @param {Object<number, Object<string, import("../Tile.js").default>>} tiles Lookup of loaded tiles by zoom level. * @param {number} zoom Zoom level. * @param {import("../Tile.js").default} tile Tile. */ loadedTileCallback(tiles: { [x: number]: { [x: string]: import("../Tile.js").default; }; }, zoom: number, tile: import("../Tile.js").default): void; /** * Create a function that adds loaded tiles to the tile lookup. * @param {import("../source/Tile.js").default} source Tile source. * @param {import("../proj/Projection.js").default} projection Projection of the tiles. * @param {Object<number, Object<string, import("../Tile.js").default>>} tiles Lookup of loaded tiles by zoom level. * @return {function(number, import("../TileRange.js").default):boolean} A function that can be * called with a zoom level and a tile range to add loaded tiles to the lookup. * @protected */ protected createLoadedTileFinder(source: import("../source/Tile.js").default, projection: import("../proj/Projection.js").default, tiles: { [x: number]: { [x: string]: import("../Tile.js").default; }; }): (arg0: number, arg1: import("../TileRange.js").default) => boolean; /** * @abstract * @param {import("../coordinate.js").Coordinate} coordinate Coordinate. * @param {import("../PluggableMap.js").FrameState} frameState Frame state. * @param {number} hitTolerance Hit tolerance in pixels. * @param {function(import("../Feature.js").FeatureLike, import("../layer/Layer.js").default): T} callback Feature callback. * @param {Array<import("../Feature.js").FeatureLike>} declutteredFeatures Decluttered features. * @return {T|void} Callback result. * @template T */ forEachFeatureAtCoordinate<T>(coordinate: number[], frameState: import("../PluggableMap.js").FrameState, hitTolerance: number, callback: (arg0: import("../render/Feature.js").default | import("../Feature.js").default<any>, arg1: import("../layer/Layer.js").default<any>) => T, declutteredFeatures: (import("../render/Feature.js").default | import("../Feature.js").default<any>)[]): void | T; /** * @abstract * @param {import("../pixel.js").Pixel} pixel Pixel. * @param {import("../PluggableMap.js").FrameState} frameState FrameState. * @param {number} hitTolerance Hit tolerance in pixels. * @return {Uint8ClampedArray|Uint8Array} The result. If there is no data at the pixel * location, null will be returned. If there is data, but pixel values cannot be * returned, and empty array will be returned. */ getDataAtPixel(pixel: number[], frameState: import("../PluggableMap.js").FrameState, hitTolerance: number): Uint8Array | Uint8ClampedArray; /** * @return {LayerType} Layer. */ getLayer(): LayerType; /** * Perform action necessary to get the layer rendered after new fonts have loaded * @abstract */ handleFontsChanged(): void; /** * Handle changes in image state. * @param {import("../events/Event.js").default} event Image change event. * @private */ private handleImageChange_; /** * Load the image if not already loaded, and register the image change * listener if needed. * @param {import("../ImageBase.js").default} image Image. * @return {boolean} `true` if the image is already loaded, `false` otherwise. * @protected */ protected loadImage(image: import("../ImageBase.js").default): boolean; /** * @protected */ protected renderIfReadyAndVisible(): void; } import Observable from "../Observable.js"; //# sourceMappingURL=Layer.d.ts.map