import { Coordinate } from '../../coordinate'; import { EventsKey } from '../../events'; import BaseEvent from '../../events/Event'; import { Extent } from '../../extent'; import ImageTile from '../../ImageTile'; import TileLayer from '../../layer/Tile'; import VectorTileLayer from '../../layer/VectorTile'; import { FrameState } from '../../PluggableMap'; import Projection from '../../proj/Projection'; import TileSource from '../../source/Tile'; import Tile from '../../Tile'; import TileGrid from '../../tilegrid/TileGrid'; import { HitMatch } from '../Map'; import { FeatureCallback } from '../vector'; import CanvasLayerRenderer from './Layer'; export default class CanvasTileLayerRenderer extends CanvasLayerRenderer { constructor(tileLayer: TileLayer | VectorTileLayer); protected renderedPixelRatio: number; protected renderedProjection: Projection; protected renderedRevision: number; protected renderedTiles: Tile[]; protected tmpExtent: Extent; /** * Get the image from a tile. */ protected getTileImage(tile: ImageTile): HTMLCanvasElement | HTMLImageElement | HTMLVideoElement; protected isDrawableTile(tile: Tile): boolean; /** * Manage tile pyramid. * This function performs a number of functions related to the tiles at the * current zoom and lower zoom levels: * * registers idle tiles in frameState.wantedTiles so that they are not * discarded by the tile queue * enqueues missing tiles * */ protected manageTilePyramid( frameState: FrameState, tileSource: TileSource, tileGrid: TileGrid, pixelRatio: number, projection: Projection, extent: Extent, currentZ: number, preload: number, opt_tileCallback?: () => void, ): void; protected scheduleExpireCache(frameState: FrameState, tileSource: TileSource): void; protected updateUsedTiles( usedTiles: { [key: string]: { [key: string]: boolean } }, tileSource: TileSource, tile: Tile, ): void; drawTileImage( tile: ImageTile, frameState: FrameState, x: number, y: number, w: number, h: number, gutter: number, transition: boolean, opacity: number, ): void; forEachFeatureAtCoordinate( coordinate: Coordinate, frameState: FrameState, hitTolerance: number, callback: FeatureCallback, matches: HitMatch[], ): T | undefined; getImage(): HTMLCanvasElement; getLayer(): TileLayer | VectorTileLayer; getTile(z: number, x: number, y: number, frameState: FrameState): Tile; /** * Perform action necessary to get the layer rendered after new fonts have loaded */ handleFontsChanged(): void; loadedTileCallback(tiles: { [key: number]: { [key: string]: Tile } }, zoom: number, tile: Tile): boolean; /** * Determine whether render should be called. */ prepareFrame(frameState: FrameState): boolean; /** * Render the layer. */ renderFrame(frameState: FrameState, target: HTMLElement): HTMLElement; on(type: string | string[], listener: (p0: any) => any): EventsKey | EventsKey[]; once(type: string | string[], listener: (p0: any) => any): EventsKey | EventsKey[]; un(type: string | string[], listener: (p0: any) => any): void; on(type: 'change', listener: (evt: BaseEvent) => void): EventsKey; once(type: 'change', listener: (evt: BaseEvent) => void): EventsKey; un(type: 'change', listener: (evt: BaseEvent) => void): void; on(type: 'error', listener: (evt: BaseEvent) => void): EventsKey; once(type: 'error', listener: (evt: BaseEvent) => void): EventsKey; un(type: 'error', listener: (evt: BaseEvent) => void): void; }