import Collection from '../Collection'; import { EventsKey } from '../events'; import { Condition } from '../events/condition'; import BaseEvent from '../events/Event'; import { Extent } from '../extent'; import Feature from '../Feature'; import Geometry from '../geom/Geometry'; import SimpleGeometry from '../geom/SimpleGeometry'; import BaseVectorLayer from '../layer/BaseVector'; import VectorLayer from '../layer/Vector'; import MapBrowserEvent from '../MapBrowserEvent'; import { ObjectEvent } from '../Object'; import PluggableMap from '../PluggableMap'; import VectorSource from '../source/Vector'; import VectorTile from '../source/VectorTile'; import { StyleLike } from '../style/Style'; import PointerInteraction from './Pointer'; export interface Options { condition?: Condition | undefined; deleteCondition?: Condition | undefined; insertVertexCondition?: Condition | undefined; pixelTolerance?: number | undefined; style?: StyleLike | undefined; source?: VectorSource | undefined; hitDetection?: boolean | BaseVectorLayer | VectorTile> | undefined; features?: Collection> | undefined; wrapX?: boolean | undefined; } export interface SegmentData { depth?: number[] | undefined; feature: Feature; geometry: SimpleGeometry; index?: number | undefined; segment: Extent[]; featureSegments?: SegmentData[] | undefined; } declare enum ModifyEventType { MODIFYSTART = 'modifystart', MODIFYEND = 'modifyend', } export default class Modify extends PointerInteraction { constructor(options: Options); /** * Get the overlay layer that this interaction renders the modification point or vertex to. */ getOverlay(): VectorLayer; /** * Handle pointer down events. */ handleDownEvent(evt: MapBrowserEvent): boolean; /** * Handle pointer drag events. */ handleDragEvent(evt: MapBrowserEvent): void; /** * Handles the {@link module:ol/MapBrowserEvent map browser event} and may modify the geometry. */ handleEvent(mapBrowserEvent: MapBrowserEvent): boolean; /** * Handle pointer up events. */ handleUpEvent(evt: MapBrowserEvent): boolean; /** * Removes the vertex currently being pointed. */ removePoint(): boolean; /** * Activate or deactivate the interaction. */ setActive(active: boolean): void; /** * Remove the interaction from its current map and attach it to the new map. * Subclasses may set up event handlers to get notified about changes to * the map here. */ setMap(map: PluggableMap): 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:active', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:active', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:active', 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: 'modifyend', listener: (evt: ModifyEvent) => void): EventsKey; once(type: 'modifyend', listener: (evt: ModifyEvent) => void): EventsKey; un(type: 'modifyend', listener: (evt: ModifyEvent) => void): void; on(type: 'modifystart', listener: (evt: ModifyEvent) => void): EventsKey; once(type: 'modifystart', listener: (evt: ModifyEvent) => void): EventsKey; un(type: 'modifystart', listener: (evt: ModifyEvent) => 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; } export class ModifyEvent extends BaseEvent { constructor( type: ModifyEventType, features: Collection>, MapBrowserEvent: MapBrowserEvent, ); /** * The features being modified. */ features: Collection>; /** * Associated {@link module:ol/MapBrowserEvent}. */ mapBrowserEvent: MapBrowserEvent; }