import { EventsKey } from '../events'; import BaseEvent from '../events/Event'; import { Extent } from '../extent'; import Feature from '../Feature'; import Geometry from '../geom/Geometry'; import { ObjectEvent } from '../Object'; import { Pixel } from '../pixel'; import PluggableMap, { FrameState } from '../PluggableMap'; import { OrderFunction } from '../render'; import RenderEvent from '../render/Event'; import VectorSource from '../source/Vector'; import VectorTile from '../source/VectorTile'; import { StyleFunction, StyleLike } from '../style/Style'; import Layer from './Layer'; export interface Options { className?: string | undefined; name?: string | undefined; title?: string | undefined; type?: string | undefined; opacity?: number | undefined; visible?: boolean | undefined; extent?: Extent | undefined; zIndex?: number | undefined; minResolution?: number | undefined; maxResolution?: number | undefined; minZoom?: number | undefined; maxZoom?: number | undefined; renderOrder?: OrderFunction | undefined; renderBuffer?: number | undefined; source?: VectorSource | undefined; map?: PluggableMap | undefined; declutter?: boolean | undefined; style?: StyleLike | null | undefined; updateWhileAnimating?: boolean | undefined; updateWhileInteracting?: boolean | undefined; } export default class BaseVectorLayer< VectorSourceType extends VectorSource | VectorTile = VectorSource | VectorTile > extends Layer { constructor(opt_options?: Options); getDeclutter(): boolean; /** * Get the topmost feature that intersects the given pixel on the viewport. Returns a promise * that resolves with an array of features. The array will either contain the topmost feature * when a hit was detected, or it will be empty. * The hit detection algorithm used for this method is optimized for performance, but is less * accurate than the one used in {@link module:ol/PluggableMap~PluggableMap#getFeaturesAtPixel}: Text * is not considered, and icons are only represented by their bounding box instead of the exact * image. */ getFeatures(pixel: Pixel): Promise[]>; getRenderBuffer(): number | undefined; getRenderOrder(): (p0: Feature, p1: Feature) => number | null | undefined; /** * Get the style for features. This returns whatever was passed to the style * option at construction or to the setStyle method. */ getStyle(): StyleLike | null | undefined; /** * Get the style function. */ getStyleFunction(): StyleFunction | undefined; getUpdateWhileAnimating(): boolean; getUpdateWhileInteracting(): boolean; /** * Render declutter items for this layer */ renderDeclutter(frameState: FrameState): void; setRenderOrder(renderOrder: OrderFunction | null | undefined): void; /** * Set the style for features. This can be a single style object, an array * of styles, or a function that takes a feature and resolution and returns * an array of styles. If set to null, the layer has no style (a null style), * so only features that have their own styles will be rendered in the layer. Call * setStyle() without arguments to reset to the default style. See * {@link module:ol/style} for information on the default style. */ setStyle(opt_style?: StyleLike | null): void; 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: 'change:extent', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:extent', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:extent', listener: (evt: ObjectEvent) => void): void; on(type: 'change:maxResolution', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:maxResolution', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:maxResolution', listener: (evt: ObjectEvent) => void): void; on(type: 'change:maxZoom', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:maxZoom', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:maxZoom', listener: (evt: ObjectEvent) => void): void; on(type: 'change:minResolution', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:minResolution', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:minResolution', listener: (evt: ObjectEvent) => void): void; on(type: 'change:minZoom', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:minZoom', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:minZoom', listener: (evt: ObjectEvent) => void): void; on(type: 'change:opacity', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:opacity', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:opacity', listener: (evt: ObjectEvent) => void): void; on(type: 'change:source', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:source', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:source', listener: (evt: ObjectEvent) => void): void; on(type: 'change:visible', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:visible', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:visible', listener: (evt: ObjectEvent) => void): void; on(type: 'change:zIndex', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:zIndex', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:zIndex', listener: (evt: ObjectEvent) => 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; on(type: 'postrender', listener: (evt: RenderEvent) => void): EventsKey; once(type: 'postrender', listener: (evt: RenderEvent) => void): EventsKey; un(type: 'postrender', listener: (evt: RenderEvent) => void): void; on(type: 'prerender', listener: (evt: RenderEvent) => void): EventsKey; once(type: 'prerender', listener: (evt: RenderEvent) => void): EventsKey; un(type: 'prerender', listener: (evt: RenderEvent) => void): void; on(type: 'propertychange', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'propertychange', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'propertychange', listener: (evt: ObjectEvent) => void): void; }