package.interaction.Extent.d.ts Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ol Show documentation
Show all versions of ol Show documentation
OpenLayers mapping library
The newest version!
/**
* @classdesc
* Events emitted by {@link module:ol/interaction/Extent~Extent} instances are
* instances of this type.
*/
export class ExtentEvent extends Event {
/**
* @param {import("../extent.js").Extent} extent the new extent
*/
constructor(extent: import("../extent.js").Extent);
/**
* The current extent.
* @type {import("../extent.js").Extent}
* @api
*/
extent: import("../extent.js").Extent;
}
export default Extent;
export type Options = {
/**
* A function that
* takes a {@link module :ol/MapBrowserEvent~MapBrowserEvent} and returns a
* boolean to indicate whether that event should be handled.
* Default is {@link module :ol/events/condition.always}.
*/
condition?: import("../events/condition.js").Condition | undefined;
/**
* Initial extent. Defaults to no
* initial extent.
*/
extent?: import("../extent.js").Extent | undefined;
/**
* Style for the drawn extent box. Defaults to the `Polygon` editing style
* documented in {@link module :ol/style/Style~Style}
*/
boxStyle?: import("../style/Style.js").StyleLike | undefined;
/**
* Pixel tolerance for considering the
* pointer close enough to a segment or vertex for editing.
*/
pixelTolerance?: number | undefined;
/**
* Style for the cursor used to draw the extent. Defaults to the `Point` editing style
* documented in {@link module :ol/style/Style~Style}
*/
pointerStyle?: import("../style/Style.js").StyleLike | undefined;
/**
* Wrap the drawn extent across multiple maps
* in the X direction? Only affects visuals, not functionality.
*/
wrapX?: boolean | undefined;
};
/**
* *
*/
export type ExtentOnSignature = import("../Observable").OnSignature & import("../Observable").OnSignature & import("../Observable").OnSignature<"extentchanged", ExtentEvent, Return> & import("../Observable").CombinedOnSignature;
import Event from '../events/Event.js';
/***
* @template Return
* @typedef {import("../Observable").OnSignature &
* import("../Observable").OnSignature &
* import("../Observable").OnSignature<'extentchanged', ExtentEvent, Return> &
* import("../Observable").CombinedOnSignature} ExtentOnSignature
*/
/**
* @classdesc
* Allows the user to draw a vector box by clicking and dragging on the map.
* Once drawn, the vector box can be modified by dragging its vertices or edges.
* This interaction is only supported for mouse devices.
*
* @fires ExtentEvent
* @api
*/
declare class Extent extends PointerInteraction {
/**
* @param {Options} [options] Options.
*/
constructor(options?: Options | undefined);
/***
* @type {ExtentOnSignature}
*/
on: ExtentOnSignature;
/***
* @type {ExtentOnSignature}
*/
once: ExtentOnSignature;
/***
* @type {ExtentOnSignature}
*/
un: ExtentOnSignature;
/**
* Condition
* @type {import("../events/condition.js").Condition}
* @private
*/
private condition_;
/**
* Extent of the drawn box
* @type {import("../extent.js").Extent}
* @private
*/
private extent_;
/**
* Handler for pointer move events
* @type {function (import("../coordinate.js").Coordinate): import("../extent.js").Extent|null}
* @private
*/
private pointerHandler_;
/**
* Pixel threshold to snap to extent
* @type {number}
* @private
*/
private pixelTolerance_;
/**
* Is the pointer snapped to an extent vertex
* @type {boolean}
* @private
*/
private snappedToVertex_;
/**
* Feature for displaying the visible extent
* @type {Feature}
* @private
*/
private extentFeature_;
/**
* Feature for displaying the visible pointer
* @type {Feature}
* @private
*/
private vertexFeature_;
/**
* Layer for the extentFeature
* @type {VectorLayer}
* @private
*/
private extentOverlay_;
/**
* Layer for the vertexFeature
* @type {VectorLayer}
* @private
*/
private vertexOverlay_;
/**
* @param {import("../pixel.js").Pixel} pixel cursor location
* @param {import("../Map.js").default} map map
* @return {import("../coordinate.js").Coordinate|null} snapped vertex on extent
* @private
*/
private snapToVertex_;
/**
* @param {import("../MapBrowserEvent.js").default} mapBrowserEvent pointer move event
* @private
*/
private handlePointerMove_;
/**
* @param {import("../extent.js").Extent} extent extent
* @return {Feature} extent as featrue
* @private
*/
private createOrUpdateExtentFeature_;
/**
* @param {import("../coordinate.js").Coordinate} vertex location of feature
* @return {Feature} vertex as feature
* @private
*/
private createOrUpdatePointerFeature_;
/**
* 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.
* @param {import("../Map.js").default} map Map.
* @override
*/
override setMap(map: import("../Map.js").default): void;
/**
* Returns the current drawn extent in the view projection (or user projection if set)
*
* @return {import("../extent.js").Extent} Drawn extent in the view projection.
* @api
*/
getExtent(): import("../extent.js").Extent;
/**
* Returns the current drawn extent in the view projection
*
* @return {import("../extent.js").Extent} Drawn extent in the view projection.
* @api
*/
getExtentInternal(): import("../extent.js").Extent;
/**
* Manually sets the drawn extent, using the view projection.
*
* @param {import("../extent.js").Extent} extent Extent
* @api
*/
setExtent(extent: import("../extent.js").Extent): void;
}
import PointerInteraction from './Pointer.js';
//# sourceMappingURL=Extent.d.ts.map